From d8317c44b775010bc6e28d67208ecc1fbc1bb388 Mon Sep 17 00:00:00 2001 From: Matiss Janis Aboltins Date: Fri, 10 Apr 2026 18:03:45 +0100 Subject: [PATCH] [AI] Migrate desktop-client to subpath imports (#7446) * [AI] Migrate desktop-client to subpath imports Replace the `@desktop-client/*` path alias with Node.js subpath imports (`#*`) across packages/desktop-client: - Declare the full `imports` map in packages/desktop-client/package.json (bare index entries, root-level files, and per-subdirectory wildcards with explicit extension overrides where `.ts` and `.tsx` mix). - Update all source files to import from `#...` specifiers. - Drop the `@desktop-client` group from .oxfmtrc.json. - Enable `actual/prefer-subpath-imports` for desktop-client in .oxlintrc.json so future code keeps using the subpath form. Co-Authored-By: Claude Opus 4.6 (1M context) * [AI] Drop legacy desktop-client aliases Remove the `@desktop-client/*` and `loot-core/*` path aliases from vite.config.ts and tsconfig.json now that every desktop-client source file imports via subpath imports / `@actual-app/core`. Co-Authored-By: Claude Opus 4.6 (1M context) * Release notes * [AI] Use electron-renderer condition for renderer-only exports Desktop-client's Vite build used the `electron` resolve condition, which overlapped with loot-core exports where `electron` means the Node/main variant (e.g. `shared/platform.electron.ts` using `os`, `platform/server/asyncStorage/index.electron.ts` using `fs`). Once the `loot-core` Vite alias was removed, the renderer bundle started pulling those Node variants and crashed at runtime with `It.default.platform is not a function` inside `platform.electron.ts`. Introduce a distinct `electron-renderer` condition used only by desktop-client's Vite config, and rename the `electron` key to `electron-renderer` on the sole loot-core export whose `electron` branch is the Electron renderer variant (`#/./platform/client/connection`, the IPC `global.Actual.ipcConnect` file). Every other `electron`-conditioned export keeps its Node semantics and is still matched by loot-core's own `vite.desktop.config.ts` (`conditions: ['electron']`). Co-Authored-By: Claude Opus 4.6 (1M context) * [AI] Drop .electron.* extensions from loot-core desktop resolver Now that every Node/main variant is selected via the `electron` subpath import condition in `packages/loot-core/package.json`, Vite's `resolveExtensions` list no longer needs the `.electron.js`, `.electron.ts`, `.electron.tsx` entries. Remove them to keep resolution explicit and avoid implicit extension picking. Co-Authored-By: Claude Opus 4.6 (1M context) * [AI] Align desktop-client TS resolution with Vite - Set `customConditions: ["electron-renderer"]` in `packages/desktop-client/tsconfig.json` so TypeScript resolves conditional imports (notably `@actual-app/core/platform/client/connection`) to the same file Vite picks at runtime. Today the surfaces happen to match because both variants import from a shared `index-types.ts`, but the alignment prevents a latent drift bug. - Fix typo in the release note (`Standartise` -> `Standardise`). Co-Authored-By: Claude Opus 4.6 (1M context) --------- Co-authored-by: Claude Opus 4.6 (1M context) --- .oxfmtrc.json | 12 +- .oxlintrc.json | 5 +- packages/api/methods.test.ts | 3 +- .../desktop-client/e2e/budget.mobile.test.ts | 8 +- packages/desktop-client/package.json | 85 +++++++++++ .../src/accounts/accountsSlice.ts | 7 +- .../desktop-client/src/accounts/mutations.ts | 29 ++-- .../desktop-client/src/accounts/queries.ts | 5 +- packages/desktop-client/src/app/appSlice.ts | 15 +- .../desktop-client/src/auth/AuthProvider.tsx | 6 +- .../src/auth/ProtectedRoute.tsx | 7 +- .../src/browser-preload.browser.js | 3 +- .../desktop-client/src/budget/mutations.ts | 21 ++- packages/desktop-client/src/budget/queries.ts | 9 +- .../src/budgetfiles/budgetfilesSlice.ts | 23 ++- .../desktop-client/src/components/App.tsx | 50 +++---- .../src/components/AppBackground.tsx | 4 +- .../src/components/BankSyncStatus.tsx | 4 +- .../src/components/CommandBar.tsx | 24 ++- .../src/components/FatalError.tsx | 5 +- .../src/components/FinancesApp.tsx | 25 ++-- .../src/components/GlobalKeys.ts | 4 +- .../src/components/HelpMenu.tsx | 6 +- .../src/components/LoggedInUser.tsx | 21 ++- .../src/components/ManageRules.tsx | 34 ++--- .../desktop-client/src/components/Modals.tsx | 16 +- .../desktop-client/src/components/Notes.tsx | 2 +- .../src/components/NotesButton.tsx | 5 +- .../src/components/Notifications.tsx | 8 +- .../src/components/PrivacyFilter.tsx | 2 +- .../src/components/ServerContext.tsx | 11 +- .../src/components/ThemeSelector.tsx | 5 +- .../src/components/Titlebar.tsx | 25 ++-- .../src/components/UpdateNotification.tsx | 6 +- .../src/components/accounts/Account.tsx | 99 ++++++------- .../components/accounts/AccountSyncCheck.tsx | 15 +- .../src/components/accounts/Balance.test.tsx | 17 +-- .../src/components/accounts/Balance.tsx | 30 ++-- .../accounts/BalanceHistoryGraph.tsx | 17 +-- .../src/components/accounts/Header.tsx | 35 +++-- .../components/accounts/Reconcile.test.tsx | 13 +- .../src/components/accounts/Reconcile.tsx | 19 ++- .../admin/UserAccess/UserAccess.tsx | 26 ++-- .../admin/UserAccess/UserAccessHeader.tsx | 2 +- .../admin/UserAccess/UserAccessPage.tsx | 4 +- .../admin/UserAccess/UserAccessRow.tsx | 19 ++- .../admin/UserDirectory/UserDirectory.tsx | 26 ++-- .../UserDirectory/UserDirectoryHeader.tsx | 11 +- .../admin/UserDirectory/UserDirectoryPage.tsx | 6 +- .../admin/UserDirectory/UserDirectoryRow.tsx | 11 +- .../autocomplete/AccountAutocomplete.tsx | 5 +- .../components/autocomplete/Autocomplete.tsx | 5 +- .../autocomplete/CategoryAutocomplete.tsx | 28 ++-- .../CategoryGroupAutocomplete.tsx | 5 +- .../autocomplete/FilterAutocomplete.tsx | 6 +- .../autocomplete/PayeeAutocomplete.test.tsx | 23 ++- .../autocomplete/PayeeAutocomplete.tsx | 29 ++-- .../autocomplete/ReportAutocomplete.tsx | 6 +- .../autocomplete/autocompleteRanking.ts | 2 +- .../src/components/banksync/AccountRow.tsx | 7 +- .../components/banksync/AccountsHeader.tsx | 2 +- .../src/components/banksync/AccountsList.tsx | 5 +- .../banksync/BankSyncCheckboxOptions.tsx | 4 +- .../components/banksync/EditSyncAccount.tsx | 15 +- .../src/components/banksync/FieldMapping.tsx | 4 +- .../src/components/banksync/index.tsx | 18 ++- .../banksync/useBankSyncAccountSettings.ts | 12 +- .../budget/BalanceWithCarryover.tsx | 16 +- .../components/budget/BudgetCategories.tsx | 16 +- .../components/budget/BudgetPageHeader.tsx | 4 +- .../src/components/budget/BudgetSummaries.tsx | 5 +- .../src/components/budget/BudgetTable.tsx | 17 +-- .../src/components/budget/BudgetTotals.tsx | 4 +- .../components/budget/DynamicBudgetTable.tsx | 5 +- .../src/components/budget/ExpenseCategory.tsx | 25 ++-- .../src/components/budget/ExpenseGroup.tsx | 25 ++-- .../src/components/budget/IncomeCategory.tsx | 19 +-- .../src/components/budget/IncomeGroup.tsx | 5 +- .../src/components/budget/IncomeHeader.tsx | 4 +- .../src/components/budget/MonthPicker.tsx | 9 +- .../src/components/budget/MonthsContext.tsx | 2 +- .../src/components/budget/RenderMonths.tsx | 5 +- .../src/components/budget/SidebarCategory.tsx | 11 +- .../budget/SidebarCategoryButtons.tsx | 9 +- .../src/components/budget/SidebarGroup.tsx | 15 +- .../budget/envelope/BalanceMenu.tsx | 4 +- .../budget/envelope/BalanceMovementMenu.tsx | 6 +- .../components/budget/envelope/BudgetMenu.tsx | 2 +- .../components/budget/envelope/CoverMenu.tsx | 18 ++- .../envelope/EnvelopeBudgetComponents.tsx | 37 ++--- .../budget/envelope/EnvelopeBudgetContext.tsx | 2 +- .../components/budget/envelope/HoldMenu.tsx | 7 +- .../components/budget/envelope/IncomeMenu.tsx | 5 +- .../budget/envelope/TransferMenu.tsx | 13 +- .../budgetsummary/BudgetMonthMenu.tsx | 2 +- .../envelope/budgetsummary/BudgetSummary.tsx | 13 +- .../envelope/budgetsummary/ToBudget.tsx | 16 +- .../envelope/budgetsummary/ToBudgetAmount.tsx | 14 +- .../envelope/budgetsummary/ToBudgetMenu.tsx | 4 +- .../envelope/budgetsummary/TotalsList.tsx | 10 +- .../budget/goals/BudgetAutomation.tsx | 11 +- .../budget/goals/BudgetAutomationEditor.tsx | 11 +- .../budget/goals/CategoryAutomationButton.tsx | 9 +- .../src/components/budget/goals/actions.ts | 2 +- .../src/components/budget/goals/constants.ts | 2 +- .../goals/editor/HistoricalAutomation.tsx | 11 +- .../editor/HistoricalAutomationReadOnly.tsx | 2 +- .../budget/goals/editor/LimitAutomation.tsx | 23 +-- .../goals/editor/LimitAutomationReadOnly.tsx | 6 +- .../goals/editor/PercentageAutomation.tsx | 15 +- .../editor/PercentageAutomationReadOnly.tsx | 2 +- .../budget/goals/editor/RefillAutomation.tsx | 2 +- .../goals/editor/ScheduleAutomation.tsx | 13 +- .../editor/ScheduleAutomationReadOnly.tsx | 2 +- .../budget/goals/editor/WeekAutomation.tsx | 10 +- .../goals/editor/WeekAutomationReadOnly.tsx | 8 +- .../src/components/budget/goals/reducer.ts | 4 +- .../goals/useBudgetAutomationCategories.ts | 2 +- .../src/components/budget/index.tsx | 37 +++-- .../budget/tracking/BalanceMenu.tsx | 4 +- .../components/budget/tracking/BudgetMenu.tsx | 2 +- .../tracking/TrackingBudgetComponents.tsx | 33 ++--- .../budget/tracking/TrackingBudgetContext.tsx | 2 +- .../budgetsummary/BudgetMonthMenu.tsx | 2 +- .../tracking/budgetsummary/BudgetSummary.tsx | 13 +- .../tracking/budgetsummary/BudgetTotal.tsx | 4 +- .../budgetsummary/ExpenseProgress.tsx | 6 +- .../tracking/budgetsummary/ExpenseTotal.tsx | 4 +- .../tracking/budgetsummary/IncomeProgress.tsx | 6 +- .../tracking/budgetsummary/IncomeTotal.tsx | 4 +- .../budget/tracking/budgetsummary/Saved.tsx | 12 +- .../src/components/budget/util.ts | 24 +-- .../src/components/common/Link.tsx | 2 +- .../src/components/common/Modal.tsx | 2 +- .../src/components/filters/AppliedFilters.tsx | 3 +- .../components/filters/ConditionsOpMenu.tsx | 5 +- .../components/filters/FilterExpression.tsx | 7 +- .../src/components/filters/FiltersMenu.tsx | 33 ++--- .../src/components/filters/FiltersStack.tsx | 3 +- .../src/components/filters/NameFilter.tsx | 2 +- .../src/components/filters/OpButton.tsx | 3 +- .../src/components/filters/PayeeFilter.tsx | 4 +- .../filters/SavedFilterMenuButton.tsx | 5 +- .../components/filters/subfieldFromFilter.ts | 2 +- .../components/filters/subfieldToOptions.ts | 2 +- .../components/filters/updateFilterReducer.ts | 4 +- .../src/components/formula/FormulaEditor.tsx | 6 +- .../src/components/formula/QueryManager.tsx | 40 ++--- .../src/components/formula/queryTimeFrame.ts | 2 +- .../components/gocardless/GoCardlessLink.tsx | 2 +- .../manager/BudgetFileSelection.tsx | 23 ++- .../src/components/manager/ConfigServer.tsx | 26 ++-- .../src/components/manager/ManagementApp.tsx | 36 ++--- .../src/components/manager/ServerURL.tsx | 4 +- .../src/components/manager/WelcomeScreen.tsx | 8 +- .../manager/subscribe/Bootstrap.tsx | 13 +- .../manager/subscribe/ChangePassword.tsx | 5 +- .../components/manager/subscribe/Error.tsx | 2 +- .../components/manager/subscribe/Login.tsx | 23 ++- .../manager/subscribe/OpenIdCallback.ts | 6 +- .../manager/subscribe/OpenIdForm.tsx | 9 +- .../components/manager/subscribe/common.tsx | 9 +- .../mobile/ActionableGridListItem.tsx | 3 +- .../components/mobile/MobileBackButton.tsx | 2 +- .../src/components/mobile/MobileNavTabs.tsx | 6 +- .../mobile/accounts/AccountPage.tsx | 34 ++--- .../mobile/accounts/AccountTransactions.tsx | 45 +++--- .../mobile/accounts/AccountsPage.tsx | 39 ++--- .../accounts/AllAccountTransactions.tsx | 32 ++-- .../accounts/OffBudgetAccountTransactions.tsx | 37 ++--- .../accounts/OnBudgetAccountTransactions.tsx | 37 ++--- .../mobile/banksync/BankSyncAccountsList.tsx | 5 +- .../banksync/BankSyncAccountsListItem.tsx | 7 +- .../MobileBankSyncAccountEditPage.tsx | 20 +-- .../mobile/banksync/MobileBankSyncPage.tsx | 18 ++- .../components/mobile/budget/BalanceCell.tsx | 18 +-- .../components/mobile/budget/BudgetCell.tsx | 29 ++-- .../components/mobile/budget/BudgetPage.tsx | 59 ++++---- .../components/mobile/budget/BudgetTable.tsx | 36 ++--- .../mobile/budget/CategoryGroupActionMenu.tsx | 2 +- .../components/mobile/budget/CategoryPage.tsx | 15 +- .../mobile/budget/CategoryTransactions.tsx | 25 ++-- .../mobile/budget/ExpenseCategoryList.tsx | 9 +- .../mobile/budget/ExpenseCategoryListItem.tsx | 28 ++-- .../mobile/budget/ExpenseGroupList.tsx | 9 +- .../mobile/budget/ExpenseGroupListItem.tsx | 24 ++- .../mobile/budget/IncomeCategoryList.tsx | 5 +- .../mobile/budget/IncomeCategoryListItem.tsx | 18 +-- .../components/mobile/budget/IncomeGroup.tsx | 18 +-- .../components/mobile/budget/SpentCell.tsx | 15 +- .../budget/UncategorizedTransactions.tsx | 20 +-- .../mobile/payees/MobilePayeeEditPage.tsx | 21 ++- .../mobile/payees/MobilePayeesPage.test.tsx | 11 +- .../mobile/payees/MobilePayeesPage.tsx | 23 ++- .../components/mobile/payees/PayeesList.tsx | 5 +- .../mobile/payees/PayeesListItem.tsx | 9 +- .../components/mobile/rules/AddRuleButton.tsx | 2 +- .../mobile/rules/MobileRuleEditPage.tsx | 25 ++-- .../mobile/rules/MobileRulesPage.tsx | 35 +++-- .../src/components/mobile/rules/RulesList.tsx | 5 +- .../components/mobile/rules/RulesListItem.tsx | 13 +- .../mobile/schedules/AddScheduleButton.tsx | 2 +- .../schedules/MobileScheduleEditPage.tsx | 30 ++-- .../mobile/schedules/MobileSchedulesPage.tsx | 35 +++-- .../mobile/schedules/SchedulesList.tsx | 9 +- .../mobile/schedules/SchedulesListItem.tsx | 21 ++- .../transactions/AddTransactionButton.tsx | 2 +- .../transactions/FocusableAmountInput.tsx | 11 +- .../mobile/transactions/TransactionEdit.tsx | 86 +++++------ .../mobile/transactions/TransactionList.tsx | 43 +++--- .../transactions/TransactionListItem.tsx | 28 ++-- .../TransactionListWithBalances.tsx | 29 ++-- .../src/components/mobile/utils.ts | 2 +- .../modals/AccountAutocompleteModal.tsx | 8 +- .../components/modals/AccountMenuModal.tsx | 19 ++- .../modals/BudgetAutomationsModal.test.ts | 2 +- .../modals/BudgetAutomationsModal.tsx | 43 +++--- .../components/modals/BudgetPageMenuModal.tsx | 10 +- .../modals/CategoryAutocompleteModal.tsx | 13 +- .../modals/CategoryGroupAutocompleteModal.tsx | 13 +- .../modals/CategoryGroupMenuModal.tsx | 16 +- .../components/modals/CategoryMenuModal.tsx | 12 +- .../components/modals/CloseAccountModal.tsx | 31 ++-- .../modals/ConfirmCategoryDeleteModal.tsx | 15 +- .../components/modals/ConfirmDeleteModal.tsx | 8 +- .../modals/ConfirmPayeesMergeModal.tsx | 12 +- .../modals/ConfirmTransactionEditModal.tsx | 8 +- .../modals/ConfirmUnlinkAccountModal.tsx | 8 +- .../modals/ConvertToScheduleModal.tsx | 8 +- .../modals/CopyWidgetToDashboardModal.tsx | 10 +- .../src/components/modals/CoverModal.tsx | 30 ++-- .../components/modals/CreateAccountModal.tsx | 37 ++--- .../modals/CreateEncryptionKeyModal.tsx | 19 ++- .../modals/CreateLocalAccountModal.tsx | 21 ++- .../src/components/modals/EditAccess.tsx | 23 ++- .../src/components/modals/EditFieldModal.tsx | 24 ++- .../src/components/modals/EditRuleModal.tsx | 11 +- .../src/components/modals/EditUser.tsx | 29 ++-- .../modals/EnvelopeBalanceMenuModal.tsx | 14 +- .../modals/EnvelopeBudgetMenuModal.tsx | 23 ++- .../modals/EnvelopeBudgetMonthMenuModal.tsx | 21 +-- .../modals/EnvelopeBudgetSummaryModal.tsx | 35 ++--- .../modals/EnvelopeIncomeBalanceMenuModal.tsx | 14 +- .../modals/EnvelopeToBudgetMenuModal.tsx | 10 +- .../modals/FixEncryptionKeyModal.tsx | 11 +- .../GoCardlessExternalMsgModal.test.tsx | 8 +- .../modals/GoCardlessExternalMsgModal.tsx | 33 ++--- .../modals/GoCardlessInitialiseModal.tsx | 15 +- .../components/modals/GoalTemplateModal.tsx | 10 +- .../src/components/modals/HoldBufferModal.tsx | 18 +-- .../DateFormatSelect.tsx | 4 +- .../ImportTransactionsModal/FieldMappings.tsx | 4 +- .../ImportTransactionsModal.tsx | 38 ++--- .../ImportTransactionsModal/InOutOption.tsx | 2 +- .../MultiplierOption.tsx | 2 +- .../ImportTransactionsModal/Transaction.tsx | 9 +- .../modals/ImportTransactionsModal/utils.ts | 5 +- .../modals/KeyboardShortcutModal.tsx | 11 +- .../src/components/modals/LoadBackupModal.tsx | 24 +-- .../components/modals/ManageRulesModal.tsx | 10 +- .../modals/MergeUnusedPayeesModal.tsx | 19 ++- .../modals/NewCategoryGroupModal.tsx | 9 +- .../components/modals/NewCategoryModal.tsx | 9 +- .../src/components/modals/NotesModal.tsx | 12 +- .../components/modals/OpenIDEnableModal.tsx | 29 ++-- .../modals/OutOfSyncMigrationsModal.tsx | 12 +- .../components/modals/PasswordEnableModal.tsx | 27 ++-- .../modals/PayeeAutocompleteModal.tsx | 12 +- .../modals/PluggyAiInitialiseModal.tsx | 15 +- .../modals/ScheduledTransactionMenuModal.tsx | 15 +- .../modals/SelectLinkedAccountsModal.tsx | 47 +++--- .../modals/SimpleFinInitialiseModal.tsx | 15 +- .../components/modals/SingleInputModal.tsx | 9 +- .../modals/TrackingBalanceMenuModal.tsx | 14 +- .../modals/TrackingBudgetMenuModal.tsx | 23 ++- .../modals/TrackingBudgetMonthMenuModal.tsx | 21 +-- .../modals/TrackingBudgetSummaryModal.tsx | 21 +-- .../src/components/modals/TransferModal.tsx | 28 ++-- .../components/modals/TransferOwnership.tsx | 31 ++-- .../UnmigrateBudgetAutomationsModal.tsx | 19 +-- .../manager/ConfirmChangeDocumentDir.tsx | 16 +- .../modals/manager/DeleteFileModal.tsx | 14 +- .../modals/manager/DuplicateFileModal.tsx | 13 +- .../modals/manager/FilesSettingsModal.tsx | 14 +- .../modals/manager/ImportActualModal.tsx | 12 +- .../components/modals/manager/ImportModal.tsx | 10 +- .../modals/manager/ImportYNAB4Modal.tsx | 12 +- .../modals/manager/ImportYNAB5Modal.tsx | 14 +- .../components/payees/CategoryLearning.tsx | 10 +- .../src/components/payees/ManagePayees.tsx | 29 ++-- .../components/payees/ManagePayeesPage.tsx | 6 +- .../payees/ManagePayeesWithData.tsx | 25 ++-- .../src/components/payees/PayeeMenu.tsx | 5 +- .../src/components/payees/PayeeTable.tsx | 7 +- .../src/components/payees/PayeeTableRow.tsx | 18 +-- .../components/reports/AccountSelector.tsx | 5 +- .../reports/CategorySelector.test.tsx | 7 +- .../components/reports/CategorySelector.tsx | 7 +- .../src/components/reports/Change.test.tsx | 4 +- .../src/components/reports/Change.tsx | 4 +- .../src/components/reports/ChooseGraph.tsx | 6 +- .../components/reports/DashboardHeader.tsx | 5 +- .../components/reports/DashboardSelector.tsx | 7 +- .../src/components/reports/DateRange.tsx | 5 +- .../src/components/reports/FormulaResult.tsx | 11 +- .../src/components/reports/Header.tsx | 16 +- .../src/components/reports/Overview.tsx | 63 ++++---- .../src/components/reports/ReportCard.tsx | 8 +- .../src/components/reports/ReportOptions.ts | 7 +- .../src/components/reports/ReportRouter.tsx | 4 +- .../src/components/reports/ReportSidebar.tsx | 13 +- .../src/components/reports/ReportSummary.tsx | 16 +- .../src/components/reports/ReportTopbar.tsx | 11 +- .../reports/ReportsDashboardRouter.tsx | 6 +- .../src/components/reports/SaveReport.tsx | 23 ++- .../components/reports/SaveReportChoose.tsx | 2 +- .../components/reports/SaveReportDelete.tsx | 3 +- .../src/components/reports/SaveReportName.tsx | 5 +- .../src/components/reports/SummaryNumber.tsx | 12 +- .../src/components/reports/chart-theme.ts | 2 +- .../src/components/reports/disabledList.ts | 3 +- .../src/components/reports/getLiveRange.ts | 6 +- .../reports/graphs/AgeOfMoneyGraph.tsx | 6 +- .../components/reports/graphs/AreaGraph.tsx | 18 ++- .../components/reports/graphs/BarGraph.tsx | 33 ++--- .../reports/graphs/BarLineGraph.tsx | 10 +- .../reports/graphs/BudgetAnalysisGraph.tsx | 15 +- .../reports/graphs/CalendarGraph.tsx | 11 +- .../reports/graphs/CashFlowGraph.tsx | 14 +- .../reports/graphs/CrossoverGraph.tsx | 10 +- .../components/reports/graphs/DonutGraph.tsx | 25 ++-- .../components/reports/graphs/LineGraph.tsx | 35 +++-- .../reports/graphs/NetWorthGraph.tsx | 18 +-- .../components/reports/graphs/SankeyGraph.tsx | 8 +- .../reports/graphs/SpendingGraph.tsx | 17 +-- .../reports/graphs/StackedBarGraph.tsx | 35 +++-- .../reports/graphs/renderCustomLabel.tsx | 4 +- .../components/reports/graphs/showActivity.ts | 6 +- .../graphs/tableGraph/RenderTableRow.tsx | 3 +- .../reports/graphs/tableGraph/ReportTable.tsx | 3 +- .../graphs/tableGraph/ReportTableHeader.tsx | 10 +- .../graphs/tableGraph/ReportTableList.tsx | 5 +- .../graphs/tableGraph/ReportTableRow.tsx | 17 +-- .../graphs/tableGraph/ReportTableTotals.tsx | 3 +- .../src/components/reports/index.tsx | 2 +- .../src/components/reports/reportRanges.ts | 6 +- .../components/reports/reports/AgeOfMoney.tsx | 51 +++---- .../reports/reports/AgeOfMoneyCard.tsx | 27 ++-- .../reports/reports/BudgetAnalysis.tsx | 57 ++++--- .../reports/reports/BudgetAnalysisCard.tsx | 29 ++-- .../components/reports/reports/Calendar.tsx | 99 ++++++------- .../reports/reports/CalendarCard.tsx | 43 +++--- .../components/reports/reports/CashFlow.tsx | 55 ++++--- .../reports/reports/CashFlowCard.tsx | 35 +++-- .../components/reports/reports/Crossover.tsx | 63 ++++---- .../reports/reports/CrossoverCard.tsx | 34 +++-- .../reports/reports/CustomReport.tsx | 84 +++++------ .../reports/reports/CustomReportListCards.tsx | 31 ++-- .../components/reports/reports/Formula.tsx | 33 ++--- .../reports/reports/FormulaCard.tsx | 15 +- .../reports/reports/GetCardData.tsx | 23 ++- .../reports/reports/MarkdownCard.tsx | 11 +- .../reports/reports/MissingReportCard.tsx | 2 +- .../components/reports/reports/NetWorth.tsx | 59 ++++---- .../reports/reports/NetWorthCard.tsx | 40 ++--- .../src/components/reports/reports/Sankey.tsx | 59 ++++---- .../components/reports/reports/SankeyCard.tsx | 25 ++-- .../components/reports/reports/Spending.tsx | 59 ++++---- .../reports/reports/SpendingCard.tsx | 31 ++-- .../components/reports/reports/Summary.tsx | 61 ++++---- .../reports/reports/SummaryCard.tsx | 30 ++-- .../components/reports/setSessionReport.ts | 2 +- .../spreadsheets/age-of-money-spreadsheet.ts | 15 +- .../budget-analysis-spreadsheet.ts | 10 +- .../reports/spreadsheets/budgetDataQuery.ts | 14 +- .../reports/spreadsheets/budgetMonthCell.ts | 2 +- .../reports/spreadsheets/calculateLegend.ts | 5 +- .../spreadsheets/calendar-spreadsheet.ts | 15 +- .../spreadsheets/cash-flow-spreadsheet.tsx | 17 +-- .../spreadsheets/crossover-spreadsheet.ts | 11 +- .../spreadsheets/custom-spreadsheet.ts | 33 ++--- .../spreadsheets/fetchSpreadsheetQueryData.ts | 10 +- .../reports/spreadsheets/filterEmptyRows.ts | 5 +- .../reports/spreadsheets/filterHiddenItems.ts | 2 +- .../spreadsheets/grouped-spreadsheet.ts | 20 +-- .../reports/spreadsheets/makeQuery.ts | 4 +- .../spreadsheets/net-worth-spreadsheet.ts | 23 ++- .../reports/spreadsheets/recalculate.ts | 13 +- .../spreadsheets/sankey-spreadsheet.ts | 12 +- .../reports/spreadsheets/sortData.ts | 2 +- .../spreadsheets/spending-spreadsheet.ts | 19 ++- .../spreadsheets/summary-spreadsheet.ts | 17 +-- .../reports/spreadsheets/trimIntervals.ts | 2 +- .../reports/useDashboardWidgetCopyMenu.ts | 4 +- .../src/components/reports/useReport.ts | 2 +- .../src/components/reports/util.ts | 6 +- .../src/components/responsive/index.tsx | 4 +- .../src/components/rules/ActionExpression.tsx | 5 +- .../components/rules/ConditionExpression.tsx | 3 +- .../components/rules/FormulaActionEditor.tsx | 2 +- .../src/components/rules/RuleEditor.tsx | 52 +++---- .../src/components/rules/RuleRow.tsx | 13 +- .../src/components/rules/RulesHeader.tsx | 11 +- .../src/components/rules/RulesList.tsx | 3 +- .../src/components/rules/ScheduleValue.tsx | 11 +- .../src/components/rules/Value.tsx | 21 ++- .../schedules/DiscoverSchedules.tsx | 39 ++--- .../schedules/PostsOfflineNotification.tsx | 19 +-- .../components/schedules/ScheduleEditForm.tsx | 36 ++--- .../schedules/ScheduleEditModal.tsx | 32 ++-- .../src/components/schedules/ScheduleLink.tsx | 21 +-- .../components/schedules/SchedulesTable.tsx | 37 ++--- .../src/components/schedules/StatusBadge.tsx | 7 +- .../components/schedules/UpcomingLength.tsx | 11 +- .../src/components/schedules/index.tsx | 17 +-- .../schedules/schedule-edit-utils.ts | 8 +- .../src/components/select/DateSelect.tsx | 22 ++- .../select/RecurringSchedulePicker.tsx | 22 +-- .../components/settings/AuthSettings.test.tsx | 15 +- .../src/components/settings/AuthSettings.tsx | 13 +- .../settings/BudgetTypeSettings.tsx | 7 +- .../src/components/settings/Currency.tsx | 7 +- .../src/components/settings/Encryption.tsx | 12 +- .../src/components/settings/Experimental.tsx | 24 ++- .../src/components/settings/Export.tsx | 5 +- .../src/components/settings/Format.tsx | 15 +- .../components/settings/LanguageSettings.tsx | 8 +- .../settings/RepairTransactions.tsx | 5 +- .../src/components/settings/Reset.tsx | 9 +- .../settings/ThemeInstaller.test.tsx | 14 +- .../components/settings/ThemeInstaller.tsx | 17 +-- .../src/components/settings/Themes.tsx | 21 ++- .../src/components/settings/UI.tsx | 2 +- .../src/components/settings/index.tsx | 35 ++--- .../src/components/sidebar/Account.tsx | 43 ++---- .../src/components/sidebar/Accounts.tsx | 23 ++- .../src/components/sidebar/BudgetName.tsx | 17 +-- .../src/components/sidebar/ItemContent.tsx | 2 +- .../src/components/sidebar/PrimaryButtons.tsx | 6 +- .../src/components/sidebar/Sidebar.tsx | 13 +- .../components/sidebar/SidebarProvider.tsx | 2 +- .../src/components/sidebar/index.tsx | 4 +- .../desktop-client/src/components/sort.tsx | 4 +- .../src/components/spreadsheet/CellValue.tsx | 14 +- .../desktop-client/src/components/table.tsx | 26 ++-- .../src/components/tags/ManageTags.tsx | 17 +-- .../src/components/tags/ManageTagsPage.tsx | 4 +- .../src/components/tags/TagCreationRow.tsx | 17 +-- .../src/components/tags/TagEditor.tsx | 7 +- .../src/components/tags/TagRow.tsx | 22 ++- .../src/components/tags/TagsHeader.tsx | 11 +- .../src/components/tags/TagsList.tsx | 5 +- .../SelectedTransactionsButton.tsx | 21 ++- .../transactions/SimpleTransactionsTable.tsx | 32 ++-- .../transactions/TransactionList.tsx | 33 ++--- .../transactions/TransactionMenu.tsx | 17 +-- .../transactions/TransactionsTable.test.tsx | 37 +++-- .../transactions/TransactionsTable.tsx | 139 +++++++++--------- .../components/transactions/table/utils.ts | 13 +- .../src/components/util/AmountInput.tsx | 7 +- .../src/components/util/DisplayId.tsx | 4 +- .../src/components/util/FinancialInput.tsx | 5 +- .../src/components/util/GenericInput.tsx | 36 ++--- .../src/components/util/LoadComponent.tsx | 3 +- .../src/components/util/PercentInput.tsx | 7 +- .../src/components/util/accountValidation.ts | 3 +- packages/desktop-client/src/global-events.ts | 5 +- packages/desktop-client/src/gocardless.ts | 4 +- .../src/hooks/querySlidingWindow.ts | 2 +- .../desktop-client/src/hooks/useAccount.ts | 2 +- .../hooks/useAccountPreviewTransactions.ts | 10 +- .../desktop-client/src/hooks/useAccounts.ts | 2 +- .../src/hooks/useBudgetAutomations.ts | 4 +- .../desktop-client/src/hooks/useCategories.ts | 5 +- .../desktop-client/src/hooks/useCategory.ts | 2 +- .../src/hooks/useCategoryGroup.ts | 2 +- .../hooks/useCategoryPreviewTransactions.ts | 11 +- ...seCategoryScheduleGoalTemplateIndicator.ts | 12 +- .../hooks/useCategoryScheduleGoalTemplates.ts | 7 +- .../src/hooks/useClosedAccounts.ts | 2 +- .../src/hooks/useCommonPayees.ts | 2 +- .../src/hooks/useDashboardPages.ts | 7 +- .../src/hooks/useDashboardWidget.ts | 5 +- .../src/hooks/useDisplayPayee.tsx | 4 +- .../src/hooks/useFailedAccounts.ts | 2 +- .../src/hooks/useFeatureFlag.ts | 2 +- .../desktop-client/src/hooks/useFormat.ts | 10 +- .../src/hooks/useFormulaExecution.ts | 21 ++- .../desktop-client/src/hooks/useGlobalPref.ts | 6 +- .../src/hooks/useGoCardlessStatus.ts | 2 +- .../desktop-client/src/hooks/useIsTestEnv.ts | 2 +- .../desktop-client/src/hooks/useLocalPref.ts | 3 +- .../desktop-client/src/hooks/useLocale.ts | 2 +- .../src/hooks/useLocationPermission.ts | 4 +- .../src/hooks/useMetaThemeColor.test.ts | 6 +- .../src/hooks/useMetaThemeColor.ts | 2 +- .../src/hooks/useMetadataPref.ts | 6 +- .../desktop-client/src/hooks/useModalState.ts | 6 +- .../src/hooks/useNearbyPayees.ts | 4 +- packages/desktop-client/src/hooks/useNotes.ts | 4 +- .../src/hooks/useOffBudgetAccounts.ts | 2 +- .../src/hooks/useOnBudgetAccounts.ts | 2 +- .../src/hooks/useOrphanedPayees.ts | 2 +- .../src/hooks/useOverspentCategories.ts | 15 +- packages/desktop-client/src/hooks/usePayee.ts | 2 +- .../src/hooks/usePayeeRuleCounts.ts | 2 +- .../desktop-client/src/hooks/usePayees.ts | 2 +- .../src/hooks/usePluggyAiStatus.ts | 2 +- .../src/hooks/usePreviewTransactions.ts | 13 +- packages/desktop-client/src/hooks/useQuery.ts | 6 +- .../desktop-client/src/hooks/useReport.ts | 2 +- .../desktop-client/src/hooks/useReports.ts | 2 +- .../src/hooks/useRuleConditionFilters.ts | 2 +- .../src/hooks/useScheduleEdit.ts | 18 +-- .../desktop-client/src/hooks/useSchedules.ts | 18 +-- .../desktop-client/src/hooks/useSelected.tsx | 6 +- .../src/hooks/useSendPlatformRequest.ts | 4 +- .../desktop-client/src/hooks/useServerPref.ts | 6 +- .../desktop-client/src/hooks/useSheetName.tsx | 6 +- .../desktop-client/src/hooks/useSheetValue.ts | 8 +- .../src/hooks/useSimpleFinStatus.ts | 2 +- .../src/hooks/useSpreadsheet.tsx | 5 +- .../src/hooks/useSyncServerStatus.ts | 4 +- .../desktop-client/src/hooks/useSyncedPref.ts | 6 +- .../src/hooks/useSyncedPrefs.ts | 6 +- .../desktop-client/src/hooks/useTagCSS.ts | 5 +- packages/desktop-client/src/hooks/useTags.ts | 2 +- .../src/hooks/useThemeCatalog.ts | 2 +- .../src/hooks/useTransactionBatchActions.ts | 24 +-- .../src/hooks/useTransactionFilters.ts | 4 +- .../src/hooks/useTransactions.ts | 13 +- .../src/hooks/useTransactionsSearch.ts | 5 +- packages/desktop-client/src/hooks/useUndo.ts | 8 +- .../src/hooks/useUpdatedAccounts.ts | 2 +- packages/desktop-client/src/i18n.ts | 3 +- packages/desktop-client/src/index.tsx | 5 +- .../desktop-client/src/modals/modalsSlice.ts | 25 ++-- .../src/notes/DesktopLinkedNotes.tsx | 9 +- .../src/notes/DesktopTaggedNotes.tsx | 2 +- .../src/notes/MobileLinkedNotes.tsx | 7 +- .../src/notes/MobileTaggedNotes.tsx | 2 +- .../src/notifications/notificationsSlice.ts | 2 +- .../src/payees/location-adapters.ts | 6 +- .../src/payees/location-integration.test.ts | 7 +- .../src/payees/location-service.ts | 6 +- .../desktop-client/src/payees/mutations.ts | 11 +- packages/desktop-client/src/payees/queries.ts | 17 +-- .../desktop-client/src/prefs/prefsSlice.ts | 24 +-- .../src/queries/aqlQuery.test.ts | 4 +- .../desktop-client/src/queries/aqlQuery.ts | 4 +- packages/desktop-client/src/queries/index.ts | 20 +-- .../src/queries/liveQuery.test.ts | 6 +- .../desktop-client/src/queries/liveQuery.ts | 4 +- .../src/queries/pagedQuery.test.ts | 8 +- .../desktop-client/src/queries/pagedQuery.ts | 6 +- packages/desktop-client/src/redux/store.ts | 16 +- .../desktop-client/src/reports/mutations.ts | 23 ++- .../desktop-client/src/reports/queries.ts | 11 +- .../src/spreadsheet/bindings.ts | 11 +- .../desktop-client/src/spreadsheet/index.ts | 2 +- packages/desktop-client/src/style/styles.ts | 3 +- packages/desktop-client/src/style/theme.tsx | 8 +- .../desktop-client/src/style/themes/dark.ts | 2 +- .../desktop-client/src/style/themes/light.ts | 2 +- .../src/style/themes/midnight.ts | 2 +- packages/desktop-client/src/sync-events.ts | 3 +- packages/desktop-client/src/tags/mutations.ts | 11 +- packages/desktop-client/src/tags/queries.ts | 5 +- .../src/transactions/queries.ts | 7 +- .../src/transactions/transactionsSlice.ts | 5 +- packages/desktop-client/src/undo/index.ts | 2 +- .../desktop-client/src/users/usersSlice.ts | 16 +- .../desktop-client/src/util/router-tools.ts | 2 +- packages/desktop-client/src/util/ruleUtils.ts | 3 +- packages/desktop-client/src/util/versions.ts | 2 +- packages/desktop-client/tsconfig.json | 7 +- packages/desktop-client/vite.config.ts | 7 +- packages/desktop-electron/index.ts | 3 +- packages/loot-core/package.json | 4 +- packages/loot-core/vite.desktop.config.ts | 11 +- upcoming-release-notes/7446.md | 6 + 581 files changed, 3778 insertions(+), 4401 deletions(-) create mode 100644 upcoming-release-notes/7446.md diff --git a/.oxfmtrc.json b/.oxfmtrc.json index d731450ff0..f3ccfd32ba 100644 --- a/.oxfmtrc.json +++ b/.oxfmtrc.json @@ -9,24 +9,14 @@ "react", "builtin", "external", - "loot-core", ["parent", "subpath"], "sibling", - "index", - "desktop-client" + "index" ], "customGroups": [ { "groupName": "react", "elementNamePattern": ["react", "react-dom/*", "react-*"] - }, - { - "groupName": "loot-core", - "elementNamePattern": ["loot-core/**", "@actual-app/core/**"] - }, - { - "groupName": "desktop-client", - "elementNamePattern": ["@desktop-client/**"] } ], "newlinesBetween": true diff --git a/.oxlintrc.json b/.oxlintrc.json index 17d849414c..8a91ddf36a 100644 --- a/.oxlintrc.json +++ b/.oxlintrc.json @@ -397,7 +397,10 @@ } }, { - "files": ["packages/loot-core/src/**/*.{ts,tsx}"], + "files": [ + "packages/loot-core/src/**/*.{ts,tsx}", + "packages/desktop-client/src/**/*.{ts,tsx}" + ], "rules": { "actual/prefer-subpath-imports": "error" } diff --git a/packages/api/methods.test.ts b/packages/api/methods.test.ts index 8dc66bcb39..043184faff 100644 --- a/packages/api/methods.test.ts +++ b/packages/api/methods.test.ts @@ -1,9 +1,8 @@ import * as fs from 'fs/promises'; import * as path from 'path'; -import { vi } from 'vitest'; - import type { RuleEntity } from '@actual-app/core/types/models'; +import { vi } from 'vitest'; import * as api from './index'; diff --git a/packages/desktop-client/e2e/budget.mobile.test.ts b/packages/desktop-client/e2e/budget.mobile.test.ts index 120b4ae66b..3403d4f443 100644 --- a/packages/desktop-client/e2e/budget.mobile.test.ts +++ b/packages/desktop-client/e2e/budget.mobile.test.ts @@ -1,8 +1,10 @@ +import * as monthUtils from '@actual-app/core/shared/months'; +import { + amountToCurrency, + currencyToAmount, +} from '@actual-app/core/shared/util'; import type { Page } from '@playwright/test'; -import * as monthUtils from 'loot-core/shared/months'; -import { amountToCurrency, currencyToAmount } from 'loot-core/shared/util'; - import { expect, test } from './fixtures'; import { ConfigurationPage } from './page-models/configuration-page'; import type { MobileBudgetPage } from './page-models/mobile-budget-page'; diff --git a/packages/desktop-client/package.json b/packages/desktop-client/package.json index fe86b8a7ab..6da961c750 100644 --- a/packages/desktop-client/package.json +++ b/packages/desktop-client/package.json @@ -5,6 +5,91 @@ "files": [ "build" ], + "imports": { + "#browser-preload": { + "electron": "./src/browser-preload.js", + "default": "./src/browser-preload.browser.js" + }, + "#accounts": "./src/accounts/index.ts", + "#budget": "./src/budget/index.ts", + "#payees": "./src/payees/index.ts", + "#queries": "./src/queries/index.ts", + "#redux": "./src/redux/index.ts", + "#reports": "./src/reports/index.ts", + "#spreadsheet": "./src/spreadsheet/index.ts", + "#style": "./src/style/index.ts", + "#tags": "./src/tags/index.ts", + "#transactions": "./src/transactions/index.ts", + "#undo": "./src/undo/index.ts", + "#global-events": "./src/global-events.ts", + "#gocardless": "./src/gocardless.ts", + "#i18n": "./src/i18n.ts", + "#mocks": "./src/mocks.tsx", + "#polyfills": "./src/polyfills.ts", + "#components/forms": "./src/components/forms/index.tsx", + "#components/banksync/useBankSyncAccountSettings": "./src/components/banksync/useBankSyncAccountSettings.ts", + "#components/budget/goals/actions": "./src/components/budget/goals/actions.ts", + "#components/budget/goals/constants": "./src/components/budget/goals/constants.ts", + "#components/budget/goals/reducer": "./src/components/budget/goals/reducer.ts", + "#components/budget/goals/useBudgetAutomationCategories": "./src/components/budget/goals/useBudgetAutomationCategories.ts", + "#components/budget/util": "./src/components/budget/util.ts", + "#components/codemirror/autocompleteTabAccept": "./src/components/codemirror/autocompleteTabAccept.ts", + "#components/mobile/utils": "./src/components/mobile/utils.ts", + "#components/reports/chart-theme": "./src/components/reports/chart-theme.ts", + "#components/reports/constants": "./src/components/reports/constants.ts", + "#components/reports/disabledList": "./src/components/reports/disabledList.ts", + "#components/reports/getCustomTick": "./src/components/reports/getCustomTick.ts", + "#components/reports/getLiveRange": "./src/components/reports/getLiveRange.ts", + "#components/reports/graphs/showActivity": "./src/components/reports/graphs/showActivity.ts", + "#components/reports/numberFormatter": "./src/components/reports/numberFormatter.ts", + "#components/reports/ReportOptions": "./src/components/reports/ReportOptions.ts", + "#components/reports/reportRanges": "./src/components/reports/reportRanges.ts", + "#components/reports/setSessionReport": "./src/components/reports/setSessionReport.ts", + "#components/reports/spreadsheets/cash-flow-spreadsheet": "./src/components/reports/spreadsheets/cash-flow-spreadsheet.tsx", + "#components/reports/spreadsheets/*": "./src/components/reports/spreadsheets/*.ts", + "#components/reports/useDashboardWidgetCopyMenu": "./src/components/reports/useDashboardWidgetCopyMenu.ts", + "#components/reports/useReport": "./src/components/reports/useReport.ts", + "#components/reports/util": "./src/components/reports/util.ts", + "#components/schedules/schedule-edit-utils": "./src/components/schedules/schedule-edit-utils.ts", + "#components/util/accountValidation": "./src/components/util/accountValidation.ts", + "#components/util/countries": "./src/components/util/countries.ts", + "#components/util/localeToCountry": "./src/components/util/localeToCountry.ts", + "#components/*": "./src/components/*.tsx", + "#hooks/useCachedSchedules": "./src/hooks/useCachedSchedules.tsx", + "#hooks/useDisplayPayee": "./src/hooks/useDisplayPayee.tsx", + "#hooks/useDragDrop": "./src/hooks/useDragDrop.tsx", + "#hooks/useProperFocus": "./src/hooks/useProperFocus.tsx", + "#hooks/useScrollListener": "./src/hooks/useScrollListener.tsx", + "#hooks/useSelected": "./src/hooks/useSelected.tsx", + "#hooks/useSheetName": "./src/hooks/useSheetName.tsx", + "#hooks/useSingleActiveEditForm": "./src/hooks/useSingleActiveEditForm.tsx", + "#hooks/useSplitsExpanded": "./src/hooks/useSplitsExpanded.tsx", + "#hooks/useSpreadsheet": "./src/hooks/useSpreadsheet.tsx", + "#hooks/*": "./src/hooks/*.ts", + "#auth/AuthProvider": "./src/auth/AuthProvider.tsx", + "#auth/ProtectedRoute": "./src/auth/ProtectedRoute.tsx", + "#auth/*": "./src/auth/*.ts", + "#style/theme": "./src/style/theme.tsx", + "#style/*": "./src/style/*.ts", + "#notes/*": "./src/notes/*.tsx", + "#accounts/*": "./src/accounts/*.ts", + "#app/*": "./src/app/*.ts", + "#budget/*": "./src/budget/*.ts", + "#budgetfiles/*": "./src/budgetfiles/*.ts", + "#modals/*": "./src/modals/*.ts", + "#notifications/*": "./src/notifications/*.ts", + "#payees/*": "./src/payees/*.ts", + "#prefs/*": "./src/prefs/*.ts", + "#queries/*": "./src/queries/*.ts", + "#redux/*": "./src/redux/*.ts", + "#reports/*": "./src/reports/*.ts", + "#spreadsheet/*": "./src/spreadsheet/*.ts", + "#tags/*": "./src/tags/*.ts", + "#transactions/*": "./src/transactions/*.ts", + "#undo/*": "./src/undo/*.ts", + "#users/*": "./src/users/*.ts", + "#util/*": "./src/util/*.ts" + }, "scripts": { "start": "cross-env PORT=3001 vite", "start:browser": "cross-env ./bin/watch-browser", diff --git a/packages/desktop-client/src/accounts/accountsSlice.ts b/packages/desktop-client/src/accounts/accountsSlice.ts index 0db058a65b..29ae7d2f76 100644 --- a/packages/desktop-client/src/accounts/accountsSlice.ts +++ b/packages/desktop-client/src/accounts/accountsSlice.ts @@ -1,11 +1,10 @@ +import { groupById } from '@actual-app/core/shared/util'; +import type { AccountEntity } from '@actual-app/core/types/models'; import { createSlice } from '@reduxjs/toolkit'; import type { PayloadAction } from '@reduxjs/toolkit'; import memoizeOne from 'memoize-one'; -import { groupById } from 'loot-core/shared/util'; -import type { AccountEntity } from 'loot-core/types/models'; - -import { resetApp } from '@desktop-client/app/appSlice'; +import { resetApp } from '#app/appSlice'; const sliceName = 'account'; diff --git a/packages/desktop-client/src/accounts/mutations.ts b/packages/desktop-client/src/accounts/mutations.ts index 7f3634e7b4..ea1e43493a 100644 --- a/packages/desktop-client/src/accounts/mutations.ts +++ b/packages/desktop-client/src/accounts/mutations.ts @@ -1,11 +1,7 @@ import { useTranslation } from 'react-i18next'; -import { useMutation, useQueryClient } from '@tanstack/react-query'; -import type { QueryClient, QueryKey } from '@tanstack/react-query'; -import { v4 as uuidv4 } from 'uuid'; - -import { send } from 'loot-core/platform/client/connection'; -import type { SyncResponseWithErrors } from 'loot-core/server/accounts/app'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { SyncResponseWithErrors } from '@actual-app/core/server/accounts/app'; import type { AccountEntity, CategoryEntity, @@ -13,7 +9,18 @@ import type { SyncServerPluggyAiAccount, SyncServerSimpleFinAccount, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import type { QueryClient, QueryKey } from '@tanstack/react-query'; +import { v4 as uuidv4 } from 'uuid'; + +import { sync } from '#app/appSlice'; +import { useAccounts } from '#hooks/useAccounts'; +import { addNotification } from '#notifications/notificationsSlice'; +import { payeeQueries } from '#payees'; +import { useDispatch, useStore } from '#redux'; +import type { AppDispatch } from '#redux/store'; +import { setNewTransactions } from '#transactions/transactionsSlice'; import { markAccountFailed, @@ -23,14 +30,6 @@ import { } from './accountsSlice'; import { accountQueries } from './queries'; -import { sync } from '@desktop-client/app/appSlice'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { payeeQueries } from '@desktop-client/payees'; -import { useDispatch, useStore } from '@desktop-client/redux'; -import type { AppDispatch } from '@desktop-client/redux/store'; -import { setNewTransactions } from '@desktop-client/transactions/transactionsSlice'; - const invalidateQueries = (queryClient: QueryClient, queryKey?: QueryKey) => { void queryClient.invalidateQueries({ queryKey: queryKey ?? accountQueries.lists(), diff --git a/packages/desktop-client/src/accounts/queries.ts b/packages/desktop-client/src/accounts/queries.ts index 250b07310f..80d3c272a8 100644 --- a/packages/desktop-client/src/accounts/queries.ts +++ b/packages/desktop-client/src/accounts/queries.ts @@ -1,8 +1,7 @@ +import { send } from '@actual-app/core/platform/client/connection'; +import type { AccountEntity } from '@actual-app/core/types/models'; import { queryOptions } from '@tanstack/react-query'; -import { send } from 'loot-core/platform/client/connection'; -import type { AccountEntity } from 'loot-core/types/models'; - function selectActive(accounts: AccountEntity[]) { return accounts.filter(account => !account.closed); } diff --git a/packages/desktop-client/src/app/appSlice.ts b/packages/desktop-client/src/app/appSlice.ts index fd0273ee00..49730cb8bb 100644 --- a/packages/desktop-client/src/app/appSlice.ts +++ b/packages/desktop-client/src/app/appSlice.ts @@ -1,14 +1,13 @@ +import { send } from '@actual-app/core/platform/client/connection'; +import { getUploadError } from '@actual-app/core/shared/errors'; +import type { AtLeastOne } from '@actual-app/core/types/util'; import { createAction, createSlice } from '@reduxjs/toolkit'; import type { PayloadAction } from '@reduxjs/toolkit'; -import { send } from 'loot-core/platform/client/connection'; -import { getUploadError } from 'loot-core/shared/errors'; -import type { AtLeastOne } from 'loot-core/types/util'; - -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { loadPrefs } from '@desktop-client/prefs/prefsSlice'; -import { createAppAsyncThunk } from '@desktop-client/redux'; -import { getIsOutdated, getLatestVersion } from '@desktop-client/util/versions'; +import { pushModal } from '#modals/modalsSlice'; +import { loadPrefs } from '#prefs/prefsSlice'; +import { createAppAsyncThunk } from '#redux'; +import { getIsOutdated, getLatestVersion } from '#util/versions'; const sliceName = 'app'; diff --git a/packages/desktop-client/src/auth/AuthProvider.tsx b/packages/desktop-client/src/auth/AuthProvider.tsx index b823c05cba..666ec16cbc 100644 --- a/packages/desktop-client/src/auth/AuthProvider.tsx +++ b/packages/desktop-client/src/auth/AuthProvider.tsx @@ -1,10 +1,10 @@ import React, { createContext, useContext } from 'react'; import type { ReactNode } from 'react'; -import type { Permissions } from './types'; +import { useServerURL } from '#components/ServerContext'; +import { useSelector } from '#redux'; -import { useServerURL } from '@desktop-client/components/ServerContext'; -import { useSelector } from '@desktop-client/redux'; +import type { Permissions } from './types'; type AuthContextType = { hasPermission: (permission?: Permissions) => boolean; diff --git a/packages/desktop-client/src/auth/ProtectedRoute.tsx b/packages/desktop-client/src/auth/ProtectedRoute.tsx index caddc14929..08cd4a7120 100644 --- a/packages/desktop-client/src/auth/ProtectedRoute.tsx +++ b/packages/desktop-client/src/auth/ProtectedRoute.tsx @@ -3,15 +3,14 @@ import type { ReactElement } from 'react'; import { Trans } from 'react-i18next'; import { View } from '@actual-app/components/view'; +import type { RemoteFile, SyncedLocalFile } from '@actual-app/core/types/file'; -import type { RemoteFile, SyncedLocalFile } from 'loot-core/types/file'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { useSelector } from '#redux'; import { useAuth } from './AuthProvider'; import type { Permissions } from './types'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { useSelector } from '@desktop-client/redux'; - type ProtectedRouteProps = { permission: Permissions; element: ReactElement; diff --git a/packages/desktop-client/src/browser-preload.browser.js b/packages/desktop-client/src/browser-preload.browser.js index fe0930e262..b4049f3c62 100644 --- a/packages/desktop-client/src/browser-preload.browser.js +++ b/packages/desktop-client/src/browser-preload.browser.js @@ -1,8 +1,7 @@ +import * as Platform from '@actual-app/core/shared/platform'; import { initBackend as initSQLBackend } from 'absurd-sql/dist/indexeddb-main-thread'; import { registerSW } from 'virtual:pwa-register'; -import * as Platform from 'loot-core/shared/platform'; - // oxlint-disable-next-line typescript-paths/absolute-parent-import import packageJson from '../package.json'; diff --git a/packages/desktop-client/src/budget/mutations.ts b/packages/desktop-client/src/budget/mutations.ts index a7f2ce64eb..4c8a68cb94 100644 --- a/packages/desktop-client/src/budget/mutations.ts +++ b/packages/desktop-client/src/budget/mutations.ts @@ -1,24 +1,23 @@ import { useTranslation } from 'react-i18next'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { + CategoryEntity, + CategoryGroupEntity, +} from '@actual-app/core/types/models'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import type { QueryClient, QueryKey } from '@tanstack/react-query'; import type { TFunction } from 'i18next'; import { v4 as uuidv4 } from 'uuid'; -import { send } from 'loot-core/platform/client/connection'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { - CategoryEntity, - CategoryGroupEntity, -} from 'loot-core/types/models'; +import { pushModal } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import type { AppDispatch } from '#redux/store'; import { categoryQueries } from './queries'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import type { AppDispatch } from '@desktop-client/redux/store'; - function invalidateQueries(queryClient: QueryClient, queryKey?: QueryKey) { void queryClient.invalidateQueries({ queryKey: queryKey ?? categoryQueries.lists(), diff --git a/packages/desktop-client/src/budget/queries.ts b/packages/desktop-client/src/budget/queries.ts index 501ea0fe6a..b5953c5dd4 100644 --- a/packages/desktop-client/src/budget/queries.ts +++ b/packages/desktop-client/src/budget/queries.ts @@ -1,11 +1,10 @@ -import { queryOptions } from '@tanstack/react-query'; -import i18n from 'i18next'; - -import { send } from 'loot-core/platform/client/connection'; +import { send } from '@actual-app/core/platform/client/connection'; import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { queryOptions } from '@tanstack/react-query'; +import i18n from 'i18next'; type CategoryViews = { grouped: CategoryGroupEntity[]; diff --git a/packages/desktop-client/src/budgetfiles/budgetfilesSlice.ts b/packages/desktop-client/src/budgetfiles/budgetfilesSlice.ts index b42b5d9a08..42c73131ea 100644 --- a/packages/desktop-client/src/budgetfiles/budgetfilesSlice.ts +++ b/packages/desktop-client/src/budgetfiles/budgetfilesSlice.ts @@ -1,19 +1,18 @@ +import { send } from '@actual-app/core/platform/client/connection'; +import type { RemoteFile } from '@actual-app/core/server/cloud-storage'; +import { getDownloadError, getSyncError } from '@actual-app/core/shared/errors'; +import type { Budget } from '@actual-app/core/types/budget'; +import type { File } from '@actual-app/core/types/file'; +import type { Handlers } from '@actual-app/core/types/handlers'; import { createSlice } from '@reduxjs/toolkit'; import type { PayloadAction } from '@reduxjs/toolkit'; import { t } from 'i18next'; -import { send } from 'loot-core/platform/client/connection'; -import type { RemoteFile } from 'loot-core/server/cloud-storage'; -import { getDownloadError, getSyncError } from 'loot-core/shared/errors'; -import type { Budget } from 'loot-core/types/budget'; -import type { File } from 'loot-core/types/file'; -import type { Handlers } from 'loot-core/types/handlers'; - -import { resetApp, setAppState } from '@desktop-client/app/appSlice'; -import { closeModal, pushModal } from '@desktop-client/modals/modalsSlice'; -import { loadGlobalPrefs, loadPrefs } from '@desktop-client/prefs/prefsSlice'; -import { createAppAsyncThunk } from '@desktop-client/redux'; -import { signOut } from '@desktop-client/users/usersSlice'; +import { resetApp, setAppState } from '#app/appSlice'; +import { closeModal, pushModal } from '#modals/modalsSlice'; +import { loadGlobalPrefs, loadPrefs } from '#prefs/prefsSlice'; +import { createAppAsyncThunk } from '#redux'; +import { signOut } from '#users/usersSlice'; const sliceName = 'budgetfiles'; diff --git a/packages/desktop-client/src/components/App.tsx b/packages/desktop-client/src/components/App.tsx index c9a312f7c3..96994d96c2 100644 --- a/packages/desktop-client/src/components/App.tsx +++ b/packages/desktop-client/src/components/App.tsx @@ -9,12 +9,32 @@ import { BrowserRouter } from 'react-router'; import { styles } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; -import { useQueryClient } from '@tanstack/react-query'; - import { init as initConnection, send, -} from 'loot-core/platform/client/connection'; +} from '@actual-app/core/platform/client/connection'; +import { useQueryClient } from '@tanstack/react-query'; + +import { setAppState, sync } from '#app/appSlice'; +import { closeBudget, loadBudget } from '#budgetfiles/budgetfilesSlice'; +import { handleGlobalEvents } from '#global-events'; +import { useIsTestEnv } from '#hooks/useIsTestEnv'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { useOnVisible } from '#hooks/useOnVisible'; +import { SpreadsheetProvider } from '#hooks/useSpreadsheet'; +import { setI18NextLanguage } from '#i18n'; +import { addNotification } from '#notifications/notificationsSlice'; +import { installPolyfills } from '#polyfills'; +import { loadGlobalPrefs } from '#prefs/prefsSlice'; +import { useDispatch, useSelector, useStore } from '#redux'; +import { + CustomThemeStyle, + hasHiddenScrollbars, + ThemeStyle, + useTheme, +} from '#style'; +import { signOut } from '#users/usersSlice'; +import { ExposeNavigate } from '#util/router-tools'; import { AppBackground } from './AppBackground'; import { BudgetMonthCountProvider } from './budget/BudgetMonthCountContext'; @@ -26,30 +46,6 @@ import { Modals } from './Modals'; import { SidebarProvider } from './sidebar/SidebarProvider'; import { UpdateNotification } from './UpdateNotification'; -import { setAppState, sync } from '@desktop-client/app/appSlice'; -import { - closeBudget, - loadBudget, -} from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { handleGlobalEvents } from '@desktop-client/global-events'; -import { useIsTestEnv } from '@desktop-client/hooks/useIsTestEnv'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { useOnVisible } from '@desktop-client/hooks/useOnVisible'; -import { SpreadsheetProvider } from '@desktop-client/hooks/useSpreadsheet'; -import { setI18NextLanguage } from '@desktop-client/i18n'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { installPolyfills } from '@desktop-client/polyfills'; -import { loadGlobalPrefs } from '@desktop-client/prefs/prefsSlice'; -import { useDispatch, useSelector, useStore } from '@desktop-client/redux'; -import { - CustomThemeStyle, - hasHiddenScrollbars, - ThemeStyle, - useTheme, -} from '@desktop-client/style'; -import { signOut } from '@desktop-client/users/usersSlice'; -import { ExposeNavigate } from '@desktop-client/util/router-tools'; - function AppInner() { const [budgetId] = useMetadataPref('id'); const [cloudFileId] = useMetadataPref('cloudFileId'); diff --git a/packages/desktop-client/src/components/AppBackground.tsx b/packages/desktop-client/src/components/AppBackground.tsx index 0e4ec7be62..4c05e4a10c 100644 --- a/packages/desktop-client/src/components/AppBackground.tsx +++ b/packages/desktop-client/src/components/AppBackground.tsx @@ -7,9 +7,9 @@ import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; import { css } from '@emotion/css'; -import { Background } from './Background'; +import { useSelector } from '#redux'; -import { useSelector } from '@desktop-client/redux'; +import { Background } from './Background'; type AppBackgroundProps = { isLoading?: boolean; diff --git a/packages/desktop-client/src/components/BankSyncStatus.tsx b/packages/desktop-client/src/components/BankSyncStatus.tsx index ee6e8fa349..2250170634 100644 --- a/packages/desktop-client/src/components/BankSyncStatus.tsx +++ b/packages/desktop-client/src/components/BankSyncStatus.tsx @@ -7,9 +7,9 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { AnimatedRefresh } from './AnimatedRefresh'; +import { useSelector } from '#redux'; -import { useSelector } from '@desktop-client/redux'; +import { AnimatedRefresh } from './AnimatedRefresh'; export function BankSyncStatus() { const accountsSyncing = useSelector(state => state.account.accountsSyncing); diff --git a/packages/desktop-client/src/components/CommandBar.tsx b/packages/desktop-client/src/components/CommandBar.tsx index 477c97142c..c7d8f37934 100644 --- a/packages/desktop-client/src/components/CommandBar.tsx +++ b/packages/desktop-client/src/components/CommandBar.tsx @@ -22,25 +22,21 @@ import { View } from '@actual-app/components/view'; import { css } from '@emotion/css'; import { Command } from 'cmdk'; -import { CellValue, CellValueText } from './spreadsheet/CellValue'; - -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useDashboardPages } from '@desktop-client/hooks/useDashboardPages'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { useModalState } from '@desktop-client/hooks/useModalState'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useReports } from '@desktop-client/hooks/useReports'; -import type { - Binding, - SheetFields, - SheetNames, -} from '@desktop-client/spreadsheet'; +import { useAccounts } from '#hooks/useAccounts'; +import { useDashboardPages } from '#hooks/useDashboardPages'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { useModalState } from '#hooks/useModalState'; +import { useNavigate } from '#hooks/useNavigate'; +import { useReports } from '#hooks/useReports'; +import type { Binding, SheetFields, SheetNames } from '#spreadsheet'; import { accountBalance, allAccountBalance, offBudgetAccountBalance, onBudgetAccountBalance, -} from '@desktop-client/spreadsheet/bindings'; +} from '#spreadsheet/bindings'; + +import { CellValue, CellValueText } from './spreadsheet/CellValue'; type SearchableItem = { id: string; diff --git a/packages/desktop-client/src/components/FatalError.tsx b/packages/desktop-client/src/components/FatalError.tsx index 96698bf584..d4c9ba84ce 100644 --- a/packages/desktop-client/src/components/FatalError.tsx +++ b/packages/desktop-client/src/components/FatalError.tsx @@ -8,15 +8,14 @@ import { Paragraph } from '@actual-app/components/paragraph'; import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; +import { LazyLoadFailedError } from '@actual-app/core/shared/errors'; -import { LazyLoadFailedError } from 'loot-core/shared/errors'; +import { useModalState } from '#hooks/useModalState'; import { Link } from './common/Link'; import { Modal, ModalHeader } from './common/Modal'; import { Checkbox } from './forms'; -import { useModalState } from '@desktop-client/hooks/useModalState'; - type AppError = Error & { type?: string; IDBFailure?: boolean; diff --git a/packages/desktop-client/src/components/FinancesApp.tsx b/packages/desktop-client/src/components/FinancesApp.tsx index 5515fd31a5..561984c9a6 100644 --- a/packages/desktop-client/src/components/FinancesApp.tsx +++ b/packages/desktop-client/src/components/FinancesApp.tsx @@ -6,8 +6,19 @@ import { Navigate, Route, Routes, useHref, useLocation } from 'react-router'; import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as undo from '@actual-app/core/platform/client/undo'; -import * as undo from 'loot-core/platform/client/undo'; +import { getLatestAppVersion, sync } from '#app/appSlice'; +import { ProtectedRoute } from '#auth/ProtectedRoute'; +import { Permissions } from '#auth/types'; +import { useAccounts } from '#hooks/useAccounts'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { useMetaThemeColor } from '#hooks/useMetaThemeColor'; +import { useNavigate } from '#hooks/useNavigate'; +import { ScrollProvider } from '#hooks/useScrollListener'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch, useSelector } from '#redux'; import { UserAccessPage } from './admin/UserAccess/UserAccessPage'; import { BankSyncStatus } from './BankSyncStatus'; @@ -27,18 +38,6 @@ import { FloatableSidebar } from './sidebar'; import { ManageTagsPage } from './tags/ManageTagsPage'; import { Titlebar } from './Titlebar'; -import { getLatestAppVersion, sync } from '@desktop-client/app/appSlice'; -import { ProtectedRoute } from '@desktop-client/auth/ProtectedRoute'; -import { Permissions } from '@desktop-client/auth/types'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { useMetaThemeColor } from '@desktop-client/hooks/useMetaThemeColor'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { ScrollProvider } from '@desktop-client/hooks/useScrollListener'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; - function NarrowNotSupported({ redirectTo = '/budget', children, diff --git a/packages/desktop-client/src/components/GlobalKeys.ts b/packages/desktop-client/src/components/GlobalKeys.ts index 0877ea8a3b..b822a874d8 100644 --- a/packages/desktop-client/src/components/GlobalKeys.ts +++ b/packages/desktop-client/src/components/GlobalKeys.ts @@ -1,8 +1,8 @@ import { useEffect } from 'react'; -import * as Platform from 'loot-core/shared/platform'; +import * as Platform from '@actual-app/core/shared/platform'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +import { useNavigate } from '#hooks/useNavigate'; export function GlobalKeys() { const navigate = useNavigate(); diff --git a/packages/desktop-client/src/components/HelpMenu.tsx b/packages/desktop-client/src/components/HelpMenu.tsx index 5f5d357f5c..51b626efb8 100644 --- a/packages/desktop-client/src/components/HelpMenu.tsx +++ b/packages/desktop-client/src/components/HelpMenu.tsx @@ -10,9 +10,9 @@ import { Popover } from '@actual-app/components/popover'; import { SpaceBetween } from '@actual-app/components/space-between'; import { useToggle } from 'usehooks-ts'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; const getPageDocs = (page: string) => { switch (page) { diff --git a/packages/desktop-client/src/components/LoggedInUser.tsx b/packages/desktop-client/src/components/LoggedInUser.tsx index 5dc4a411c3..8bd413dde5 100644 --- a/packages/desktop-client/src/components/LoggedInUser.tsx +++ b/packages/desktop-client/src/components/LoggedInUser.tsx @@ -10,22 +10,21 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { listen } from '@actual-app/core/platform/client/connection'; +import type { RemoteFile, SyncedLocalFile } from '@actual-app/core/types/file'; +import type { TransObjectLiteral } from '@actual-app/core/types/util'; -import { listen } from 'loot-core/platform/client/connection'; -import type { RemoteFile, SyncedLocalFile } from 'loot-core/types/file'; -import type { TransObjectLiteral } from 'loot-core/types/util'; +import { useAuth } from '#auth/AuthProvider'; +import { Permissions } from '#auth/types'; +import { closeBudget } from '#budgetfiles/budgetfilesSlice'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { useNavigate } from '#hooks/useNavigate'; +import { useDispatch, useSelector } from '#redux'; +import { getUserData, signOut } from '#users/usersSlice'; import { PrivacyFilter } from './PrivacyFilter'; import { useMultiuserEnabled, useServerURL } from './ServerContext'; -import { useAuth } from '@desktop-client/auth/AuthProvider'; -import { Permissions } from '@desktop-client/auth/types'; -import { closeBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useDispatch, useSelector } from '@desktop-client/redux'; -import { getUserData, signOut } from '@desktop-client/users/usersSlice'; - type LoggedInUserProps = { hideIfNoServer?: boolean; style?: CSSProperties; diff --git a/packages/desktop-client/src/components/ManageRules.tsx b/packages/desktop-client/src/components/ManageRules.tsx index 482379419e..1bbbf56f0a 100644 --- a/packages/desktop-client/src/components/ManageRules.tsx +++ b/packages/desktop-client/src/components/ManageRules.tsx @@ -9,18 +9,25 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import { send } from 'loot-core/platform/client/connection'; -import * as undo from 'loot-core/platform/client/undo'; -import { getNormalisedString } from 'loot-core/shared/normalisation'; -import { q } from 'loot-core/shared/query'; -import { friendlyOp, mapField } from 'loot-core/shared/rules'; -import { describeSchedule } from 'loot-core/shared/schedules'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as undo from '@actual-app/core/platform/client/undo'; +import { getNormalisedString } from '@actual-app/core/shared/normalisation'; +import { q } from '@actual-app/core/shared/query'; +import { friendlyOp, mapField } from '@actual-app/core/shared/rules'; +import { describeSchedule } from '@actual-app/core/shared/schedules'; import type { NewRuleEntity, RuleEntity, ScheduleEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { usePayees } from '#hooks/usePayees'; +import { useSchedules } from '#hooks/useSchedules'; +import { SelectedProvider, useSelected } from '#hooks/useSelected'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; import { InfiniteScrollWrapper } from './common/InfiniteScrollWrapper'; import { Link } from './common/Link'; @@ -28,17 +35,6 @@ import { Search } from './common/Search'; import { RulesHeader } from './rules/RulesHeader'; import { RulesList } from './rules/RulesList'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; -import { - SelectedProvider, - useSelected, -} from '@desktop-client/hooks/useSelected'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; - export type FilterData = { payees?: Array<{ id: string; name: string }>; categories?: Array<{ id: string; name: string }>; diff --git a/packages/desktop-client/src/components/Modals.tsx b/packages/desktop-client/src/components/Modals.tsx index e767a25277..b90af91f5f 100644 --- a/packages/desktop-client/src/components/Modals.tsx +++ b/packages/desktop-client/src/components/Modals.tsx @@ -2,8 +2,14 @@ import React, { Fragment, useEffect, useEffectEvent } from 'react'; import { useLocation } from 'react-router'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; + +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { useModalState } from '#hooks/useModalState'; +import { SheetNameProvider } from '#hooks/useSheetName'; +import { closeModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; import { EditSyncAccount } from './banksync/EditSyncAccount'; import { AccountAutocompleteModal } from './modals/AccountAutocompleteModal'; @@ -79,12 +85,6 @@ import { ScheduleEditModal } from './schedules/ScheduleEditModal'; import { ScheduleLink } from './schedules/ScheduleLink'; import { UpcomingLength } from './schedules/UpcomingLength'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { useModalState } from '@desktop-client/hooks/useModalState'; -import { SheetNameProvider } from '@desktop-client/hooks/useSheetName'; -import { closeModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; - export function Modals() { const location = useLocation(); const dispatch = useDispatch(); diff --git a/packages/desktop-client/src/components/Notes.tsx b/packages/desktop-client/src/components/Notes.tsx index 58b7bf9498..13a68aff26 100644 --- a/packages/desktop-client/src/components/Notes.tsx +++ b/packages/desktop-client/src/components/Notes.tsx @@ -14,7 +14,7 @@ import { markdownBaseStyles, remarkBreaks, sequentialNewlinesPlugin, -} from '@desktop-client/util/markdown'; +} from '#util/markdown'; const remarkPlugins = [sequentialNewlinesPlugin, remarkGfm, remarkBreaks]; diff --git a/packages/desktop-client/src/components/NotesButton.tsx b/packages/desktop-client/src/components/NotesButton.tsx index 754dcccaba..fa0076144e 100644 --- a/packages/desktop-client/src/components/NotesButton.tsx +++ b/packages/desktop-client/src/components/NotesButton.tsx @@ -9,14 +9,13 @@ import type { CSSProperties } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; import { css, cx } from '@emotion/css'; -import { send } from 'loot-core/platform/client/connection'; +import { useNotes } from '#hooks/useNotes'; import { Notes } from './Notes'; -import { useNotes } from '@desktop-client/hooks/useNotes'; - type NotesButtonProps = { id: string; width?: number; diff --git a/packages/desktop-client/src/components/Notifications.tsx b/packages/desktop-client/src/components/Notifications.tsx index ffadf504ac..be69f78cf5 100644 --- a/packages/desktop-client/src/components/Notifications.tsx +++ b/packages/desktop-client/src/components/Notifications.tsx @@ -15,13 +15,13 @@ import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; import { css } from '@emotion/css'; +import { removeNotification } from '#notifications/notificationsSlice'; +import type { NotificationWithId } from '#notifications/notificationsSlice'; +import { useDispatch, useSelector } from '#redux'; + import { Link } from './common/Link'; import { MODAL_Z_INDEX } from './common/Modal'; -import { removeNotification } from '@desktop-client/notifications/notificationsSlice'; -import type { NotificationWithId } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; - // Notification stacking configuration const MAX_VISIBLE_NOTIFICATIONS = 3; // Maximum number of notifications visible in the stack const SCALE_MULTIPLIER = 0.05; // Scale reduction per stacked notification diff --git a/packages/desktop-client/src/components/PrivacyFilter.tsx b/packages/desktop-client/src/components/PrivacyFilter.tsx index c525d47fff..50b7eded64 100644 --- a/packages/desktop-client/src/components/PrivacyFilter.tsx +++ b/packages/desktop-client/src/components/PrivacyFilter.tsx @@ -6,7 +6,7 @@ import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { View } from '@actual-app/components/view'; import { css } from '@emotion/css'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; type ConditionalPrivacyFilterProps = { children: ReactNode; diff --git a/packages/desktop-client/src/components/ServerContext.tsx b/packages/desktop-client/src/components/ServerContext.tsx index 057917331c..cb47cb2b07 100644 --- a/packages/desktop-client/src/components/ServerContext.tsx +++ b/packages/desktop-client/src/components/ServerContext.tsx @@ -7,14 +7,13 @@ import React, { } from 'react'; import type { ReactNode } from 'react'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { Handlers } from '@actual-app/core/types/handlers'; import { t } from 'i18next'; -import { send } from 'loot-core/platform/client/connection'; -import type { Handlers } from 'loot-core/types/handlers'; - -import { useOnVisible } from '@desktop-client/hooks/useOnVisible'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { useOnVisible } from '#hooks/useOnVisible'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; type LoginMethod = { method: string; diff --git a/packages/desktop-client/src/components/ThemeSelector.tsx b/packages/desktop-client/src/components/ThemeSelector.tsx index 263c1e5553..595e189d7e 100644 --- a/packages/desktop-client/src/components/ThemeSelector.tsx +++ b/packages/desktop-client/src/components/ThemeSelector.tsx @@ -11,10 +11,9 @@ import { } from '@actual-app/components/icons/v2'; import { Menu } from '@actual-app/components/menu'; import { Popover } from '@actual-app/components/popover'; +import type { Theme } from '@actual-app/core/types/prefs'; -import type { Theme } from 'loot-core/types/prefs'; - -import { themeOptions, useTheme } from '@desktop-client/style'; +import { themeOptions, useTheme } from '#style'; type ThemeSelectorProps = { style?: CSSProperties; diff --git a/packages/desktop-client/src/components/Titlebar.tsx b/packages/desktop-client/src/components/Titlebar.tsx index 31db5883c6..c4e952a714 100644 --- a/packages/desktop-client/src/components/Titlebar.tsx +++ b/packages/desktop-client/src/components/Titlebar.tsx @@ -18,11 +18,20 @@ import type { CSSProperties } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { listen } from '@actual-app/core/platform/client/connection'; +import { isDevelopmentEnvironment } from '@actual-app/core/shared/environment'; +import * as Platform from '@actual-app/core/shared/platform'; import { css } from '@emotion/css'; -import { listen } from 'loot-core/platform/client/connection'; -import { isDevelopmentEnvironment } from 'loot-core/shared/environment'; -import * as Platform from 'loot-core/shared/platform'; +import { sync } from '#app/appSlice'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { useIsTestEnv } from '#hooks/useIsTestEnv'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { useNavigate } from '#hooks/useNavigate'; +import { useSheetValue } from '#hooks/useSheetValue'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { useDispatch } from '#redux'; +import * as bindings from '#spreadsheet/bindings'; import { AccountSyncCheck } from './accounts/AccountSyncCheck'; import { AnimatedRefresh } from './AnimatedRefresh'; @@ -34,16 +43,6 @@ import { useServerURL } from './ServerContext'; import { useSidebar } from './sidebar/SidebarProvider'; import { ThemeSelector } from './ThemeSelector'; -import { sync } from '@desktop-client/app/appSlice'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { useIsTestEnv } from '@desktop-client/hooks/useIsTestEnv'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { useDispatch } from '@desktop-client/redux'; -import * as bindings from '@desktop-client/spreadsheet/bindings'; - function UncategorizedButton() { const count: number | null = useSheetValue(bindings.uncategorizedCount()); if (count === null || count <= 0) { diff --git a/packages/desktop-client/src/components/UpdateNotification.tsx b/packages/desktop-client/src/components/UpdateNotification.tsx index deb60c8c5b..03e3ebf842 100644 --- a/packages/desktop-client/src/components/UpdateNotification.tsx +++ b/packages/desktop-client/src/components/UpdateNotification.tsx @@ -7,10 +7,10 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { Link } from './common/Link'; +import { setAppState, updateApp } from '#app/appSlice'; +import { useDispatch, useSelector } from '#redux'; -import { setAppState, updateApp } from '@desktop-client/app/appSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; +import { Link } from './common/Link'; export function UpdateNotification() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/accounts/Account.tsx b/packages/desktop-client/src/components/accounts/Account.tsx index 597ba27a78..8b02b0a2d6 100644 --- a/packages/desktop-client/src/components/accounts/Account.tsx +++ b/packages/desktop-client/src/components/accounts/Account.tsx @@ -6,17 +6,12 @@ import { Navigate, useLocation, useParams } from 'react-router'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { t } from 'i18next'; -import debounce from 'lodash/debounce'; -import isEqual from 'lodash/isEqual'; -import { v4 as uuidv4 } from 'uuid'; - -import { listen, send } from 'loot-core/platform/client/connection'; -import * as undo from 'loot-core/platform/client/undo'; -import type { UndoState } from 'loot-core/server/undo'; -import { currentDay } from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import type { Query } from 'loot-core/shared/query'; +import { listen, send } from '@actual-app/core/platform/client/connection'; +import * as undo from '@actual-app/core/platform/client/undo'; +import type { UndoState } from '@actual-app/core/server/undo'; +import { currentDay } from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import type { Query } from '@actual-app/core/shared/query'; import { makeAsNonChildTransactions, makeChild, @@ -24,9 +19,9 @@ import { ungroupTransaction, ungroupTransactions, updateTransaction, -} from 'loot-core/shared/transactions'; -import { applyChanges } from 'loot-core/shared/util'; -import type { IntegerAmount } from 'loot-core/shared/util'; +} from '@actual-app/core/shared/transactions'; +import { applyChanges } from '@actual-app/core/shared/util'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; import type { AccountEntity, CategoryGroupEntity, @@ -36,55 +31,59 @@ import type { RuleConditionEntity, TransactionEntity, TransactionFilterEntity, -} from 'loot-core/types/models'; - -import { AccountEmptyMessage } from './AccountEmptyMessage'; -import { AccountHeader } from './Header'; +} from '@actual-app/core/types/models'; +import { t } from 'i18next'; +import debounce from 'lodash/debounce'; +import isEqual from 'lodash/isEqual'; +import { v4 as uuidv4 } from 'uuid'; import { useReopenAccountMutation, useSyncAndDownloadMutation, useUnlinkAccountMutation, useUpdateAccountMutation, -} from '@desktop-client/accounts'; -import { markAccountRead } from '@desktop-client/accounts/accountsSlice'; -import type { SavedFilter } from '@desktop-client/components/filters/SavedFilterMenuButton'; -import { TransactionList } from '@desktop-client/components/transactions/TransactionList'; -import { validateAccountName } from '@desktop-client/components/util/accountValidation'; -import { useAccountPreviewTransactions } from '@desktop-client/hooks/useAccountPreviewTransactions'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { SchedulesProvider } from '@desktop-client/hooks/useCachedSchedules'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useFailedAccounts } from '@desktop-client/hooks/useFailedAccounts'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { getSchedulesQuery } from '@desktop-client/hooks/useSchedules'; -import { SelectedProviderWithItems } from '@desktop-client/hooks/useSelected'; -import type { Actions } from '@desktop-client/hooks/useSelected'; +} from '#accounts'; +import { markAccountRead } from '#accounts/accountsSlice'; +import type { SavedFilter } from '#components/filters/SavedFilterMenuButton'; +import { TransactionList } from '#components/transactions/TransactionList'; +import { validateAccountName } from '#components/util/accountValidation'; +import { useAccountPreviewTransactions } from '#hooks/useAccountPreviewTransactions'; +import { useAccounts } from '#hooks/useAccounts'; +import { SchedulesProvider } from '#hooks/useCachedSchedules'; +import { useCategories } from '#hooks/useCategories'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useFailedAccounts } from '#hooks/useFailedAccounts'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { usePayees } from '#hooks/usePayees'; +import { getSchedulesQuery } from '#hooks/useSchedules'; +import { SelectedProviderWithItems } from '#hooks/useSelected'; +import type { Actions } from '#hooks/useSelected'; import { SplitsExpandedProvider, useSplitsExpanded, -} from '@desktop-client/hooks/useSplitsExpanded'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { useTransactionBatchActions } from '@desktop-client/hooks/useTransactionBatchActions'; -import { useTransactionFilters } from '@desktop-client/hooks/useTransactionFilters'; -import { calculateRunningBalancesBottomUp } from '@desktop-client/hooks/useTransactions'; +} from '#hooks/useSplitsExpanded'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { useTransactionBatchActions } from '#hooks/useTransactionBatchActions'; +import { useTransactionFilters } from '#hooks/useTransactionFilters'; +import { calculateRunningBalancesBottomUp } from '#hooks/useTransactions'; import { openAccountCloseModal, pushModal, replaceModal, -} from '@desktop-client/modals/modalsSlice'; -import type { ConfirmTransactionEditReason } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useCreatePayeeMutation } from '@desktop-client/payees'; -import * as queries from '@desktop-client/queries'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; -import { pagedQuery } from '@desktop-client/queries/pagedQuery'; -import type { PagedQuery } from '@desktop-client/queries/pagedQuery'; -import { useDispatch, useSelector } from '@desktop-client/redux'; -import type { AppDispatch } from '@desktop-client/redux/store'; -import { updateNewTransactions } from '@desktop-client/transactions/transactionsSlice'; +} from '#modals/modalsSlice'; +import type { ConfirmTransactionEditReason } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useCreatePayeeMutation } from '#payees'; +import * as queries from '#queries'; +import { aqlQuery } from '#queries/aqlQuery'; +import { pagedQuery } from '#queries/pagedQuery'; +import type { PagedQuery } from '#queries/pagedQuery'; +import { useDispatch, useSelector } from '#redux'; +import type { AppDispatch } from '#redux/store'; +import { updateNewTransactions } from '#transactions/transactionsSlice'; + +import { AccountEmptyMessage } from './AccountEmptyMessage'; +import { AccountHeader } from './Header'; type ConditionEntity = Partial | TransactionFilterEntity; diff --git a/packages/desktop-client/src/components/accounts/AccountSyncCheck.tsx b/packages/desktop-client/src/components/accounts/AccountSyncCheck.tsx index ca0d7786bf..20d6aeeb0d 100644 --- a/packages/desktop-client/src/components/accounts/AccountSyncCheck.tsx +++ b/packages/desktop-client/src/components/accounts/AccountSyncCheck.tsx @@ -7,15 +7,14 @@ import { SvgExclamationOutline } from '@actual-app/components/icons/v1'; import { Popover } from '@actual-app/components/popover'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { AccountEntity } from '@actual-app/core/types/models'; -import type { AccountEntity } from 'loot-core/types/models'; - -import { useUnlinkAccountMutation } from '@desktop-client/accounts'; -import { Link } from '@desktop-client/components/common/Link'; -import { authorizeBank } from '@desktop-client/gocardless'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useFailedAccounts } from '@desktop-client/hooks/useFailedAccounts'; -import { useDispatch } from '@desktop-client/redux'; +import { useUnlinkAccountMutation } from '#accounts'; +import { Link } from '#components/common/Link'; +import { authorizeBank } from '#gocardless'; +import { useAccounts } from '#hooks/useAccounts'; +import { useFailedAccounts } from '#hooks/useFailedAccounts'; +import { useDispatch } from '#redux'; function useErrorMessage() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/accounts/Balance.test.tsx b/packages/desktop-client/src/components/accounts/Balance.test.tsx index c7738c80a1..01bc10b16c 100644 --- a/packages/desktop-client/src/components/accounts/Balance.test.tsx +++ b/packages/desktop-client/src/components/accounts/Balance.test.tsx @@ -1,25 +1,24 @@ import React from 'react'; +import type { ScheduleEntity } from '@actual-app/core/types/models'; import { render, screen } from '@testing-library/react'; -import type { ScheduleEntity } from 'loot-core/types/models'; +import { useCachedSchedules } from '#hooks/useCachedSchedules'; +import { useSelectedItems } from '#hooks/useSelected'; +import { useSheetValue } from '#hooks/useSheetValue'; +import { TestProviders } from '#mocks'; import { SelectedBalance } from './Balance'; -import { useCachedSchedules } from '@desktop-client/hooks/useCachedSchedules'; -import { useSelectedItems } from '@desktop-client/hooks/useSelected'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import { TestProviders } from '@desktop-client/mocks'; - -vi.mock('@desktop-client/hooks/useSelected', () => ({ +vi.mock('#hooks/useSelected', () => ({ useSelectedItems: vi.fn(), })); -vi.mock('@desktop-client/hooks/useSheetValue', () => ({ +vi.mock('#hooks/useSheetValue', () => ({ useSheetValue: vi.fn(), })); -vi.mock('@desktop-client/hooks/useCachedSchedules', () => ({ +vi.mock('#hooks/useCachedSchedules', () => ({ useCachedSchedules: vi.fn(), })); diff --git a/packages/desktop-client/src/components/accounts/Balance.tsx b/packages/desktop-client/src/components/accounts/Balance.tsx index 5ed1d62424..0ee6e2a666 100644 --- a/packages/desktop-client/src/components/accounts/Balance.tsx +++ b/packages/desktop-client/src/components/accounts/Balance.tsx @@ -7,25 +7,21 @@ import { SvgArrowButtonRight1 } from '@actual-app/components/icons/v2'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { q } from '@actual-app/core/shared/query'; +import type { Query } from '@actual-app/core/shared/query'; +import { getScheduledAmount } from '@actual-app/core/shared/schedules'; +import { isPreviewId } from '@actual-app/core/shared/transactions'; +import type { AccountEntity } from '@actual-app/core/types/models'; import { useHover } from 'usehooks-ts'; -import { q } from 'loot-core/shared/query'; -import type { Query } from 'loot-core/shared/query'; -import { getScheduledAmount } from 'loot-core/shared/schedules'; -import { isPreviewId } from 'loot-core/shared/transactions'; -import type { AccountEntity } from 'loot-core/types/models'; - -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { - CellValue, - CellValueText, -} from '@desktop-client/components/spreadsheet/CellValue'; -import { useCachedSchedules } from '@desktop-client/hooks/useCachedSchedules'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useSelectedItems } from '@desktop-client/hooks/useSelected'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import type { Binding } from '@desktop-client/spreadsheet'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { CellValue, CellValueText } from '#components/spreadsheet/CellValue'; +import { useCachedSchedules } from '#hooks/useCachedSchedules'; +import { useFormat } from '#hooks/useFormat'; +import { useSelectedItems } from '#hooks/useSelected'; +import { useSheetValue } from '#hooks/useSheetValue'; +import type { Binding } from '#spreadsheet'; type DetailedBalanceProps = { name: string; diff --git a/packages/desktop-client/src/components/accounts/BalanceHistoryGraph.tsx b/packages/desktop-client/src/components/accounts/BalanceHistoryGraph.tsx index c43396f4f1..bba9bed372 100644 --- a/packages/desktop-client/src/components/accounts/BalanceHistoryGraph.tsx +++ b/packages/desktop-client/src/components/accounts/BalanceHistoryGraph.tsx @@ -7,18 +7,17 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { integerToCurrency } from '@actual-app/core/shared/util'; import { eachMonthOfInterval, format, subMonths } from 'date-fns'; import { Area, AreaChart, Tooltip as RechartsTooltip, YAxis } from 'recharts'; -import * as monthUtils from 'loot-core/shared/months'; -import { integerToCurrency } from 'loot-core/shared/util'; - -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import * as query from '@desktop-client/queries'; -import { liveQuery } from '@desktop-client/queries/liveQuery'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { useLocale } from '#hooks/useLocale'; +import * as query from '#queries'; +import { liveQuery } from '#queries/liveQuery'; const LABEL_WIDTH = 70; diff --git a/packages/desktop-client/src/components/accounts/Header.tsx b/packages/desktop-client/src/components/accounts/Header.tsx index 09a8aee498..c686db478a 100644 --- a/packages/desktop-client/src/components/accounts/Header.tsx +++ b/packages/desktop-client/src/components/accounts/Header.tsx @@ -26,35 +26,34 @@ import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; -import { format as formatDate } from 'date-fns'; - -import { tsToRelativeTime } from 'loot-core/shared/util'; +import { tsToRelativeTime } from '@actual-app/core/shared/util'; import type { AccountEntity, RuleConditionEntity, TransactionEntity, TransactionFilterEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { format as formatDate } from 'date-fns'; + +import { AnimatedRefresh } from '#components/AnimatedRefresh'; +import { Search } from '#components/common/Search'; +import { FilterButton } from '#components/filters/FiltersMenu'; +import { FiltersStack } from '#components/filters/FiltersStack'; +import type { SavedFilter } from '#components/filters/SavedFilterMenuButton'; +import { NotesButton } from '#components/NotesButton'; +import { SelectedTransactionsButton } from '#components/transactions/SelectedTransactionsButton'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { useSplitsExpanded } from '#hooks/useSplitsExpanded'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { useSyncServerStatus } from '#hooks/useSyncServerStatus'; import type { TableRef } from './Account'; import { Balances } from './Balance'; import { BalanceHistoryGraph } from './BalanceHistoryGraph'; import { ReconcileMenu, ReconcilingMessage } from './Reconcile'; -import { AnimatedRefresh } from '@desktop-client/components/AnimatedRefresh'; -import { Search } from '@desktop-client/components/common/Search'; -import { FilterButton } from '@desktop-client/components/filters/FiltersMenu'; -import { FiltersStack } from '@desktop-client/components/filters/FiltersStack'; -import type { SavedFilter } from '@desktop-client/components/filters/SavedFilterMenuButton'; -import { NotesButton } from '@desktop-client/components/NotesButton'; -import { SelectedTransactionsButton } from '@desktop-client/components/transactions/SelectedTransactionsButton'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { useSplitsExpanded } from '@desktop-client/hooks/useSplitsExpanded'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { useSyncServerStatus } from '@desktop-client/hooks/useSyncServerStatus'; - type AccountHeaderProps = { tableRef: TableRef; isNameEditable: boolean; diff --git a/packages/desktop-client/src/components/accounts/Reconcile.test.tsx b/packages/desktop-client/src/components/accounts/Reconcile.test.tsx index 96a9c2272f..9fba9f039e 100644 --- a/packages/desktop-client/src/components/accounts/Reconcile.test.tsx +++ b/packages/desktop-client/src/components/accounts/Reconcile.test.tsx @@ -1,18 +1,17 @@ import React from 'react'; +import { generateAccount } from '@actual-app/core/mocks'; +import { q } from '@actual-app/core/shared/query'; +import type { AccountEntity } from '@actual-app/core/types/models'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { generateAccount } from 'loot-core/mocks'; -import { q } from 'loot-core/shared/query'; -import type { AccountEntity } from 'loot-core/types/models'; +import { useSheetValue } from '#hooks/useSheetValue'; +import { TestProviders } from '#mocks'; import { ReconcileMenu, ReconcilingMessage } from './Reconcile'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import { TestProviders } from '@desktop-client/mocks'; - -vi.mock('@desktop-client/hooks/useSheetValue', () => ({ +vi.mock('#hooks/useSheetValue', () => ({ useSheetValue: vi.fn(), })); diff --git a/packages/desktop-client/src/components/accounts/Reconcile.tsx b/packages/desktop-client/src/components/accounts/Reconcile.tsx index dfc01545fc..e6b28c20aa 100644 --- a/packages/desktop-client/src/components/accounts/Reconcile.tsx +++ b/packages/desktop-client/src/components/accounts/Reconcile.tsx @@ -11,19 +11,18 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { Query } from '@actual-app/core/shared/query'; +import { tsToRelativeTime } from '@actual-app/core/shared/util'; +import type { AccountEntity } from '@actual-app/core/types/models'; +import type { TransObjectLiteral } from '@actual-app/core/types/util'; import { format as formatDate } from 'date-fns'; import { t } from 'i18next'; -import type { Query } from 'loot-core/shared/query'; -import { tsToRelativeTime } from 'loot-core/shared/util'; -import type { AccountEntity } from 'loot-core/types/models'; -import type { TransObjectLiteral } from 'loot-core/types/util'; - -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import * as bindings from '@desktop-client/spreadsheet/bindings'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useSheetValue } from '#hooks/useSheetValue'; +import * as bindings from '#spreadsheet/bindings'; type ReconcilingMessageProps = { balanceQuery: { name: `balance-query-${string}`; query: Query }; diff --git a/packages/desktop-client/src/components/admin/UserAccess/UserAccess.tsx b/packages/desktop-client/src/components/admin/UserAccess/UserAccess.tsx index 97edc76918..87a367cadc 100644 --- a/packages/desktop-client/src/components/admin/UserAccess/UserAccess.tsx +++ b/packages/desktop-client/src/components/admin/UserAccess/UserAccess.tsx @@ -10,23 +10,25 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as undo from '@actual-app/core/platform/client/undo'; +import type { Handlers } from '@actual-app/core/types/handlers'; +import type { + UserAccessEntity, + UserAvailable, +} from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import * as undo from 'loot-core/platform/client/undo'; -import type { Handlers } from 'loot-core/types/handlers'; -import type { UserAccessEntity, UserAvailable } from 'loot-core/types/models'; +import { InfiniteScrollWrapper } from '#components/common/InfiniteScrollWrapper'; +import { Link } from '#components/common/Link'; +import { Search } from '#components/common/Search'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { pushModal } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; import { UserAccessHeader } from './UserAccessHeader'; import { UserAccessRow } from './UserAccessRow'; -import { InfiniteScrollWrapper } from '@desktop-client/components/common/InfiniteScrollWrapper'; -import { Link } from '@desktop-client/components/common/Link'; -import { Search } from '@desktop-client/components/common/Search'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; - type ManageUserAccessContentProps = { isModal: boolean; }; diff --git a/packages/desktop-client/src/components/admin/UserAccess/UserAccessHeader.tsx b/packages/desktop-client/src/components/admin/UserAccess/UserAccessHeader.tsx index a0b0292482..f3cab8a36f 100644 --- a/packages/desktop-client/src/components/admin/UserAccess/UserAccessHeader.tsx +++ b/packages/desktop-client/src/components/admin/UserAccess/UserAccessHeader.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; -import { Cell, TableHeader } from '@desktop-client/components/table'; +import { Cell, TableHeader } from '#components/table'; export function UserAccessHeader() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/admin/UserAccess/UserAccessPage.tsx b/packages/desktop-client/src/components/admin/UserAccess/UserAccessPage.tsx index 9073002a45..da4387d244 100644 --- a/packages/desktop-client/src/components/admin/UserAccess/UserAccessPage.tsx +++ b/packages/desktop-client/src/components/admin/UserAccess/UserAccessPage.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; -import { UserAccess } from './UserAccess'; +import { Page } from '#components/Page'; -import { Page } from '@desktop-client/components/Page'; +import { UserAccess } from './UserAccess'; export function UserAccessPage() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/admin/UserAccess/UserAccessRow.tsx b/packages/desktop-client/src/components/admin/UserAccess/UserAccessRow.tsx index 478c7302b0..732b53da34 100644 --- a/packages/desktop-client/src/components/admin/UserAccess/UserAccessRow.tsx +++ b/packages/desktop-client/src/components/admin/UserAccess/UserAccessRow.tsx @@ -4,17 +4,16 @@ import { useTranslation } from 'react-i18next'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { getUserAccessErrors } from '@actual-app/core/shared/errors'; +import type { UserAvailable } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import { getUserAccessErrors } from 'loot-core/shared/errors'; -import type { UserAvailable } from 'loot-core/types/models'; - -import { Checkbox } from '@desktop-client/components/forms'; -import { Cell, Row } from '@desktop-client/components/table'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { signOut } from '@desktop-client/users/usersSlice'; +import { Checkbox } from '#components/forms'; +import { Cell, Row } from '#components/table'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { signOut } from '#users/usersSlice'; type UserAccessProps = { access: UserAvailable; diff --git a/packages/desktop-client/src/components/admin/UserDirectory/UserDirectory.tsx b/packages/desktop-client/src/components/admin/UserDirectory/UserDirectory.tsx index 864636020d..07cb4a06b0 100644 --- a/packages/desktop-client/src/components/admin/UserDirectory/UserDirectory.tsx +++ b/packages/desktop-client/src/components/admin/UserDirectory/UserDirectory.tsx @@ -9,26 +9,22 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as undo from '@actual-app/core/platform/client/undo'; +import type { NewUserEntity, UserEntity } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import * as undo from 'loot-core/platform/client/undo'; -import type { NewUserEntity, UserEntity } from 'loot-core/types/models'; +import { InfiniteScrollWrapper } from '#components/common/InfiniteScrollWrapper'; +import { Link } from '#components/common/Link'; +import { Search } from '#components/common/Search'; +import { SelectedProvider, useSelected } from '#hooks/useSelected'; +import { pushModal } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { signOut } from '#users/usersSlice'; import { UserDirectoryHeader } from './UserDirectoryHeader'; import { UserDirectoryRow } from './UserDirectoryRow'; -import { InfiniteScrollWrapper } from '@desktop-client/components/common/InfiniteScrollWrapper'; -import { Link } from '@desktop-client/components/common/Link'; -import { Search } from '@desktop-client/components/common/Search'; -import { - SelectedProvider, - useSelected, -} from '@desktop-client/hooks/useSelected'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { signOut } from '@desktop-client/users/usersSlice'; - type ManageUserDirectoryContentProps = { isModal: boolean; }; diff --git a/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryHeader.tsx b/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryHeader.tsx index d5e452e93d..f0a45ac40a 100644 --- a/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryHeader.tsx +++ b/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryHeader.tsx @@ -1,15 +1,8 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; -import { - Cell, - SelectCell, - TableHeader, -} from '@desktop-client/components/table'; -import { - useSelectedDispatch, - useSelectedItems, -} from '@desktop-client/hooks/useSelected'; +import { Cell, SelectCell, TableHeader } from '#components/table'; +import { useSelectedDispatch, useSelectedItems } from '#hooks/useSelected'; export function UserDirectoryHeader() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryPage.tsx b/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryPage.tsx index d54d77ab4c..96e81f2959 100644 --- a/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryPage.tsx +++ b/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryPage.tsx @@ -5,10 +5,10 @@ import { Trans, useTranslation } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { View } from '@actual-app/components/view'; -import { UserDirectory } from './UserDirectory'; +import { Page } from '#components/Page'; +import { useNavigate } from '#hooks/useNavigate'; -import { Page } from '@desktop-client/components/Page'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +import { UserDirectory } from './UserDirectory'; export function UserDirectoryPage({ bottomContent, diff --git a/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryRow.tsx b/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryRow.tsx index 7b1fc0b636..b93da0b39d 100644 --- a/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryRow.tsx +++ b/packages/desktop-client/src/components/admin/UserDirectory/UserDirectoryRow.tsx @@ -5,13 +5,12 @@ import { Trans } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { PossibleRoles } from '@actual-app/core/shared/user'; +import type { UserEntity } from '@actual-app/core/types/models'; -import { PossibleRoles } from 'loot-core/shared/user'; -import type { UserEntity } from 'loot-core/types/models'; - -import { Checkbox } from '@desktop-client/components/forms'; -import { Cell, Row, SelectCell } from '@desktop-client/components/table'; -import { useSelectedDispatch } from '@desktop-client/hooks/useSelected'; +import { Checkbox } from '#components/forms'; +import { Cell, Row, SelectCell } from '#components/table'; +import { useSelectedDispatch } from '#hooks/useSelected'; type UserDirectoryProps = { user: UserEntity; diff --git a/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx index 85e80bea04..627a2f5560 100644 --- a/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/AccountAutocomplete.tsx @@ -13,15 +13,14 @@ import { styles } from '@actual-app/components/styles'; import { TextOneLine } from '@actual-app/components/text-one-line'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { AccountEntity } from '@actual-app/core/types/models'; import { css, cx } from '@emotion/css'; -import type { AccountEntity } from 'loot-core/types/models'; +import { useAccounts } from '#hooks/useAccounts'; import { Autocomplete } from './Autocomplete'; import { ItemHeader } from './ItemHeader'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; - type AccountAutocompleteItem = AccountEntity; type AccountListProps = { diff --git a/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx b/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx index ec5bfffba6..e6bc065886 100644 --- a/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/Autocomplete.tsx @@ -15,13 +15,12 @@ import { Popover } from '@actual-app/components/popover'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View, viewStyles } from '@actual-app/components/view'; +import { getNormalisedString } from '@actual-app/core/shared/normalisation'; import { css, cx } from '@emotion/css'; import Downshift from 'downshift'; import type { StateChangeTypes } from 'downshift'; -import { getNormalisedString } from 'loot-core/shared/normalisation'; - -import { useProperFocus } from '@desktop-client/hooks/useProperFocus'; +import { useProperFocus } from '#hooks/useProperFocus'; type CommonAutocompleteProps = { focused?: boolean; diff --git a/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx index 6cd4d647d3..4f0b2a8167 100644 --- a/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx @@ -17,30 +17,26 @@ import { Text } from '@actual-app/components/text'; import { TextOneLine } from '@actual-app/components/text-one-line'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { css, cx } from '@emotion/css'; - -import { getNormalisedString } from 'loot-core/shared/normalisation'; -import { integerToCurrency } from 'loot-core/shared/util'; +import { getNormalisedString } from '@actual-app/core/shared/normalisation'; +import { integerToCurrency } from '@actual-app/core/shared/util'; import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { css, cx } from '@emotion/css'; + +import { useEnvelopeSheetValue } from '#components/budget/envelope/EnvelopeBudgetComponents'; +import { makeAmountFullStyle } from '#components/budget/util'; +import { FinancialText } from '#components/FinancialText'; +import { useCategories } from '#hooks/useCategories'; +import { useSheetValue } from '#hooks/useSheetValue'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { envelopeBudget, trackingBudget } from '#spreadsheet/bindings'; import { Autocomplete, defaultFilterSuggestion } from './Autocomplete'; import { rankAutocompleteMatch } from './autocompleteRanking'; import { ItemHeader } from './ItemHeader'; -import { useEnvelopeSheetValue } from '@desktop-client/components/budget/envelope/EnvelopeBudgetComponents'; -import { makeAmountFullStyle } from '@desktop-client/components/budget/util'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { - envelopeBudget, - trackingBudget, -} from '@desktop-client/spreadsheet/bindings'; - type CategoryAutocompleteItem = Omit & { group?: CategoryGroupEntity; }; diff --git a/packages/desktop-client/src/components/autocomplete/CategoryGroupAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/CategoryGroupAutocomplete.tsx index 44354a8190..4c8618ed12 100644 --- a/packages/desktop-client/src/components/autocomplete/CategoryGroupAutocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/CategoryGroupAutocomplete.tsx @@ -13,14 +13,13 @@ import { styles } from '@actual-app/components/styles'; import { TextOneLine } from '@actual-app/components/text-one-line'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { CategoryGroupEntity } from '@actual-app/core/types/models'; import { css, cx } from '@emotion/css'; -import type { CategoryGroupEntity } from 'loot-core/types/models'; +import { useCategories } from '#hooks/useCategories'; import { Autocomplete } from './Autocomplete'; -import { useCategories } from '@desktop-client/hooks/useCategories'; - type CategoryGroupAutocompleteItem = CategoryGroupEntity; type CategoryGroupListProps = { diff --git a/packages/desktop-client/src/components/autocomplete/FilterAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/FilterAutocomplete.tsx index 244a0f7c46..20612ec3f9 100644 --- a/packages/desktop-client/src/components/autocomplete/FilterAutocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/FilterAutocomplete.tsx @@ -1,13 +1,13 @@ import React from 'react'; import type { ComponentProps } from 'react'; -import type { TransactionFilterEntity } from 'loot-core/types/models'; +import type { TransactionFilterEntity } from '@actual-app/core/types/models'; + +import { useTransactionFilters } from '#hooks/useTransactionFilters'; import { Autocomplete } from './Autocomplete'; import { FilterList } from './FilterList'; -import { useTransactionFilters } from '@desktop-client/hooks/useTransactionFilters'; - export function FilterAutocomplete({ embedded, ...props diff --git a/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.test.tsx b/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.test.tsx index 965026137d..dbd761a24d 100644 --- a/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.test.tsx +++ b/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.test.tsx @@ -1,24 +1,23 @@ +import { generateAccount } from '@actual-app/core/mocks'; +import type { + AccountEntity, + NearbyPayeeEntity, + PayeeEntity, +} from '@actual-app/core/types/models'; import type { UseQueryResult } from '@tanstack/react-query'; import { render, screen } from '@testing-library/react'; import type { Screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { vi } from 'vitest'; -import { generateAccount } from 'loot-core/mocks'; -import type { - AccountEntity, - NearbyPayeeEntity, - PayeeEntity, -} from 'loot-core/types/models'; +import { AuthProvider } from '#auth/AuthProvider'; +import { useNearbyPayees } from '#hooks/useNearbyPayees'; +import { createTestQueryClient, TestProviders } from '#mocks'; +import { payeeQueries } from '#payees'; import { PayeeAutocomplete } from './PayeeAutocomplete'; import type { PayeeAutocompleteProps } from './PayeeAutocomplete'; -import { AuthProvider } from '@desktop-client/auth/AuthProvider'; -import { useNearbyPayees } from '@desktop-client/hooks/useNearbyPayees'; -import { createTestQueryClient, TestProviders } from '@desktop-client/mocks'; -import { payeeQueries } from '@desktop-client/payees'; - const PAYEE_SELECTOR = '[data-testid][role=option]'; const PAYEE_SECTION_SELECTOR = '[data-testid$="-item-group"]'; const ALL_PAYEE_ITEMS_SELECTOR = '[data-testid$="-payee-item"]'; @@ -108,7 +107,7 @@ async function clickAutocomplete(autocomplete: HTMLElement) { await waitForAutocomplete(); } -vi.mock('@desktop-client/hooks/useNearbyPayees', () => ({ +vi.mock('#hooks/useNearbyPayees', () => ({ useNearbyPayees: vi.fn(), })); diff --git a/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx index 8b1d4527ec..4ace373b6c 100644 --- a/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/PayeeAutocomplete.tsx @@ -22,15 +22,24 @@ import { styles } from '@actual-app/components/styles'; import { TextOneLine } from '@actual-app/components/text-one-line'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { css, cx } from '@emotion/css'; - -import { formatDistance } from 'loot-core/shared/location-utils'; -import { getNormalisedString } from 'loot-core/shared/normalisation'; +import { formatDistance } from '@actual-app/core/shared/location-utils'; +import { getNormalisedString } from '@actual-app/core/shared/normalisation'; import type { AccountEntity, NearbyPayeeEntity, PayeeEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { css, cx } from '@emotion/css'; + +import { useAccounts } from '#hooks/useAccounts'; +import { useCommonPayees } from '#hooks/useCommonPayees'; +import { useNearbyPayees } from '#hooks/useNearbyPayees'; +import { usePayees } from '#hooks/usePayees'; +import { + getActivePayees, + useCreatePayeeMutation, + useDeletePayeeLocationMutation, +} from '#payees'; import { Autocomplete, @@ -40,16 +49,6 @@ import { import { rankAutocompleteMatch } from './autocompleteRanking'; import { ItemHeader } from './ItemHeader'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCommonPayees } from '@desktop-client/hooks/useCommonPayees'; -import { useNearbyPayees } from '@desktop-client/hooks/useNearbyPayees'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { - getActivePayees, - useCreatePayeeMutation, - useDeletePayeeLocationMutation, -} from '@desktop-client/payees'; - type PayeeAutocompleteItem = PayeeEntity & PayeeItemType & { nearbyLocationId?: string; diff --git a/packages/desktop-client/src/components/autocomplete/ReportAutocomplete.tsx b/packages/desktop-client/src/components/autocomplete/ReportAutocomplete.tsx index d3d011a47f..eafd6ac786 100644 --- a/packages/desktop-client/src/components/autocomplete/ReportAutocomplete.tsx +++ b/packages/desktop-client/src/components/autocomplete/ReportAutocomplete.tsx @@ -1,13 +1,13 @@ import React from 'react'; import type { ComponentProps } from 'react'; -import type { CustomReportEntity } from 'loot-core/types/models'; +import type { CustomReportEntity } from '@actual-app/core/types/models'; + +import { useReports } from '#hooks/useReports'; import { Autocomplete } from './Autocomplete'; import { ReportList } from './ReportList'; -import { useReports } from '@desktop-client/hooks/useReports'; - type ReportAutocompleteProps = { embedded?: boolean; } & ComponentProps>; diff --git a/packages/desktop-client/src/components/autocomplete/autocompleteRanking.ts b/packages/desktop-client/src/components/autocomplete/autocompleteRanking.ts index 307b2f037d..42f5deadda 100644 --- a/packages/desktop-client/src/components/autocomplete/autocompleteRanking.ts +++ b/packages/desktop-client/src/components/autocomplete/autocompleteRanking.ts @@ -1,4 +1,4 @@ -import { getNormalisedString } from 'loot-core/shared/normalisation'; +import { getNormalisedString } from '@actual-app/core/shared/normalisation'; /** * Returns a numeric rank for how well `name` matches `input`. diff --git a/packages/desktop-client/src/components/banksync/AccountRow.tsx b/packages/desktop-client/src/components/banksync/AccountRow.tsx index 426d8e36e4..8d5c7eb62f 100644 --- a/packages/desktop-client/src/components/banksync/AccountRow.tsx +++ b/packages/desktop-client/src/components/banksync/AccountRow.tsx @@ -5,13 +5,12 @@ import { Button } from '@actual-app/components/button'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; +import { tsToRelativeTime } from '@actual-app/core/shared/util'; +import type { AccountEntity } from '@actual-app/core/types/models'; import { format as formatDate } from 'date-fns'; import type { Locale } from 'date-fns'; -import { tsToRelativeTime } from 'loot-core/shared/util'; -import type { AccountEntity } from 'loot-core/types/models'; - -import { Cell, Row } from '@desktop-client/components/table'; +import { Cell, Row } from '#components/table'; type AccountRowProps = { account: AccountEntity; diff --git a/packages/desktop-client/src/components/banksync/AccountsHeader.tsx b/packages/desktop-client/src/components/banksync/AccountsHeader.tsx index 0b1aa2358e..bd66173b71 100644 --- a/packages/desktop-client/src/components/banksync/AccountsHeader.tsx +++ b/packages/desktop-client/src/components/banksync/AccountsHeader.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; -import { Cell, TableHeader } from '@desktop-client/components/table'; +import { Cell, TableHeader } from '#components/table'; type AccountsHeaderProps = { unlinked: boolean; diff --git a/packages/desktop-client/src/components/banksync/AccountsList.tsx b/packages/desktop-client/src/components/banksync/AccountsList.tsx index ab342d47fa..bd9f1ccc94 100644 --- a/packages/desktop-client/src/components/banksync/AccountsList.tsx +++ b/packages/desktop-client/src/components/banksync/AccountsList.tsx @@ -1,13 +1,12 @@ import React from 'react'; import { View } from '@actual-app/components/view'; +import type { AccountEntity } from '@actual-app/core/types/models'; -import type { AccountEntity } from 'loot-core/types/models'; +import { useLocale } from '#hooks/useLocale'; import { AccountRow } from './AccountRow'; -import { useLocale } from '@desktop-client/hooks/useLocale'; - type AccountsListProps = { accounts: AccountEntity[]; hoveredAccount?: string | null; diff --git a/packages/desktop-client/src/components/banksync/BankSyncCheckboxOptions.tsx b/packages/desktop-client/src/components/banksync/BankSyncCheckboxOptions.tsx index fbd5d1de14..2eec76ba5b 100644 --- a/packages/desktop-client/src/components/banksync/BankSyncCheckboxOptions.tsx +++ b/packages/desktop-client/src/components/banksync/BankSyncCheckboxOptions.tsx @@ -9,8 +9,8 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; -import { LabeledCheckbox } from '@desktop-client/components/forms/LabeledCheckbox'; -import { ToggleField } from '@desktop-client/components/mobile/MobileForms'; +import { LabeledCheckbox } from '#components/forms/LabeledCheckbox'; +import { ToggleField } from '#components/mobile/MobileForms'; type CheckboxOptionProps = { id: string; diff --git a/packages/desktop-client/src/components/banksync/EditSyncAccount.tsx b/packages/desktop-client/src/components/banksync/EditSyncAccount.tsx index 30a49cb770..5a3e32d4c1 100644 --- a/packages/desktop-client/src/components/banksync/EditSyncAccount.tsx +++ b/packages/desktop-client/src/components/banksync/EditSyncAccount.tsx @@ -6,22 +6,17 @@ import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { AccountEntity } from '@actual-app/core/types/models'; -import type { AccountEntity } from 'loot-core/types/models'; +import { useUnlinkAccountMutation } from '#accounts'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; import { BankSyncCheckboxOptions } from './BankSyncCheckboxOptions'; import { FieldMapping } from './FieldMapping'; import { useBankSyncAccountSettings } from './useBankSyncAccountSettings'; -import { useUnlinkAccountMutation } from '@desktop-client/accounts'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; - export type TransactionDirection = 'payment' | 'deposit'; type MappableActualFields = 'date' | 'payee' | 'notes'; diff --git a/packages/desktop-client/src/components/banksync/FieldMapping.tsx b/packages/desktop-client/src/components/banksync/FieldMapping.tsx index b48d25087d..803dbb0edf 100644 --- a/packages/desktop-client/src/components/banksync/FieldMapping.tsx +++ b/packages/desktop-client/src/components/banksync/FieldMapping.tsx @@ -9,13 +9,13 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { Cell, Row, TableHeader } from '#components/table'; + import type { MappableFieldWithExample, TransactionDirection, } from './EditSyncAccount'; -import { Cell, Row, TableHeader } from '@desktop-client/components/table'; - const useTransactionDirectionOptions = () => { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/banksync/index.tsx b/packages/desktop-client/src/components/banksync/index.tsx index 44321c65e5..32b1a2f9f9 100644 --- a/packages/desktop-client/src/components/banksync/index.tsx +++ b/packages/desktop-client/src/components/banksync/index.tsx @@ -5,19 +5,21 @@ import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; +import type { + AccountEntity, + BankSyncProviders, +} from '@actual-app/core/types/models'; -import type { AccountEntity, BankSyncProviders } from 'loot-core/types/models'; +import { MOBILE_NAV_HEIGHT } from '#components/mobile/MobileNavTabs'; +import { Page } from '#components/Page'; +import { useAccounts } from '#hooks/useAccounts'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; import { AccountsHeader } from './AccountsHeader'; import { AccountsList } from './AccountsList'; -import { MOBILE_NAV_HEIGHT } from '@desktop-client/components/mobile/MobileNavTabs'; -import { Page } from '@desktop-client/components/Page'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; - type SyncProviders = BankSyncProviders | 'unlinked'; const useSyncSourceReadable = () => { diff --git a/packages/desktop-client/src/components/banksync/useBankSyncAccountSettings.ts b/packages/desktop-client/src/components/banksync/useBankSyncAccountSettings.ts index cb1bb87181..0cf0fb9b00 100644 --- a/packages/desktop-client/src/components/banksync/useBankSyncAccountSettings.ts +++ b/packages/desktop-client/src/components/banksync/useBankSyncAccountSettings.ts @@ -4,9 +4,12 @@ import { defaultMappings, mappingsFromString, mappingsToString, -} from 'loot-core/server/util/custom-sync-mapping'; -import type { Mappings } from 'loot-core/server/util/custom-sync-mapping'; -import { q } from 'loot-core/shared/query'; +} from '@actual-app/core/server/util/custom-sync-mapping'; +import type { Mappings } from '@actual-app/core/server/util/custom-sync-mapping'; +import { q } from '@actual-app/core/shared/query'; + +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { useTransactions } from '#hooks/useTransactions'; import { getFields } from './EditSyncAccount'; import type { @@ -14,9 +17,6 @@ import type { TransactionDirection, } from './EditSyncAccount'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { useTransactions } from '@desktop-client/hooks/useTransactions'; - export function useBankSyncAccountSettings(accountId: string) { const [savedMappings = mappingsToString(defaultMappings), setSavedMappings] = useSyncedPref(`custom-sync-mappings-${accountId}`); diff --git a/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx b/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx index 37efa00397..9f5ff7e370 100644 --- a/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx +++ b/packages/desktop-client/src/components/budget/BalanceWithCarryover.tsx @@ -13,21 +13,17 @@ import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; +import type { TransObjectLiteral } from '@actual-app/core/types/util'; import { css } from '@emotion/css'; -import type { TransObjectLiteral } from 'loot-core/types/util'; +import { CellValue, CellValueText } from '#components/spreadsheet/CellValue'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { useFormat } from '#hooks/useFormat'; +import { useSheetValue } from '#hooks/useSheetValue'; +import type { Binding } from '#spreadsheet'; import { makeBalanceAmountStyle } from './util'; -import { - CellValue, - CellValueText, -} from '@desktop-client/components/spreadsheet/CellValue'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import type { Binding } from '@desktop-client/spreadsheet'; - type CarryoverIndicatorProps = { style?: CSSProperties; }; diff --git a/packages/desktop-client/src/components/budget/BudgetCategories.tsx b/packages/desktop-client/src/components/budget/BudgetCategories.tsx index fd21888cd9..5ee0478875 100644 --- a/packages/desktop-client/src/components/budget/BudgetCategories.tsx +++ b/packages/desktop-client/src/components/budget/BudgetCategories.tsx @@ -3,11 +3,15 @@ import React, { memo, useMemo, useState } from 'react'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import { DropHighlightPosContext } from '#components/sort'; +import type { DragState, OnDropCallback } from '#components/sort'; +import { Row } from '#components/table'; +import { useLocalPref } from '#hooks/useLocalPref'; import { ExpenseCategory } from './ExpenseCategory'; import { ExpenseGroup } from './ExpenseGroup'; @@ -18,14 +22,6 @@ import { SidebarCategory } from './SidebarCategory'; import { SidebarGroup } from './SidebarGroup'; import { separateGroups } from './util'; -import { DropHighlightPosContext } from '@desktop-client/components/sort'; -import type { - DragState, - OnDropCallback, -} from '@desktop-client/components/sort'; -import { Row } from '@desktop-client/components/table'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; - type BudgetItem = | { type: 'new-group' } | { type: 'new-category' } diff --git a/packages/desktop-client/src/components/budget/BudgetPageHeader.tsx b/packages/desktop-client/src/components/budget/BudgetPageHeader.tsx index a42d4922aa..7f6c556643 100644 --- a/packages/desktop-client/src/components/budget/BudgetPageHeader.tsx +++ b/packages/desktop-client/src/components/budget/BudgetPageHeader.tsx @@ -4,11 +4,11 @@ import type { ComponentProps } from 'react'; import { View } from '@actual-app/components/view'; +import { useGlobalPref } from '#hooks/useGlobalPref'; + import { MonthPicker } from './MonthPicker'; import { getScrollbarWidth } from './util'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; - type BudgetPageHeaderProps = { startMonth: string; onMonthSelect: (month: string) => void; diff --git a/packages/desktop-client/src/components/budget/BudgetSummaries.tsx b/packages/desktop-client/src/components/budget/BudgetSummaries.tsx index dace9d099f..f2504deaa9 100644 --- a/packages/desktop-client/src/components/budget/BudgetSummaries.tsx +++ b/packages/desktop-client/src/components/budget/BudgetSummaries.tsx @@ -9,16 +9,15 @@ import React, { import { animated, useSpring } from 'react-spring'; import { View, viewStyles } from '@actual-app/components/view'; +import { addMonths, subMonths } from '@actual-app/core/shared/months'; import { css } from '@emotion/css'; -import { addMonths, subMonths } from 'loot-core/shared/months'; +import { useResizeObserver } from '#hooks/useResizeObserver'; import { MonthsContext } from './MonthsContext'; import { useBudgetComponents } from '.'; -import { useResizeObserver } from '@desktop-client/hooks/useResizeObserver'; - export function BudgetSummaries() { const { months } = useContext(MonthsContext); const [firstMonth] = months; diff --git a/packages/desktop-client/src/components/budget/BudgetTable.tsx b/packages/desktop-client/src/components/budget/BudgetTable.tsx index 8c727035aa..8d79c3831c 100644 --- a/packages/desktop-client/src/components/budget/BudgetTable.tsx +++ b/packages/desktop-client/src/components/budget/BudgetTable.tsx @@ -4,12 +4,17 @@ import type { KeyboardEvent } from 'react'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import { q } from 'loot-core/shared/query'; +import { q } from '@actual-app/core/shared/query'; import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import type { DropPosition } from '#components/sort'; +import { SchedulesProvider } from '#hooks/useCachedSchedules'; +import { useCategories } from '#hooks/useCategories'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { useLocalPref } from '#hooks/useLocalPref'; import { BudgetCategories } from './BudgetCategories'; import { BudgetSummaries } from './BudgetSummaries'; @@ -23,12 +28,6 @@ import { separateGroups, } from './util'; -import type { DropPosition } from '@desktop-client/components/sort'; -import { SchedulesProvider } from '@desktop-client/hooks/useCachedSchedules'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; - type BudgetTableProps = { type: string; prewarmStartMonth: string; diff --git a/packages/desktop-client/src/components/budget/BudgetTotals.tsx b/packages/desktop-client/src/components/budget/BudgetTotals.tsx index 647e11a8f1..eb2d9d166b 100644 --- a/packages/desktop-client/src/components/budget/BudgetTotals.tsx +++ b/packages/desktop-client/src/components/budget/BudgetTotals.tsx @@ -14,13 +14,13 @@ import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { useGlobalPref } from '#hooks/useGlobalPref'; + import { RenderMonths } from './RenderMonths'; import { getScrollbarWidth } from './util'; import { useBudgetComponents } from '.'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; - type BudgetTotalsProps = { toggleHiddenCategories: () => void; expandAllCategories: () => void; diff --git a/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx b/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx index bb1b5a7136..1ac488b49b 100644 --- a/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx +++ b/packages/desktop-client/src/components/budget/DynamicBudgetTable.tsx @@ -5,15 +5,14 @@ import { useHotkeys } from 'react-hotkeys-hook'; import { AutoSizer } from 'react-virtualized-auto-sizer'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; -import * as monthUtils from 'loot-core/shared/months'; +import { useGlobalPref } from '#hooks/useGlobalPref'; import { useBudgetMonthCount } from './BudgetMonthCountContext'; import { BudgetPageHeader } from './BudgetPageHeader'; import { BudgetTable } from './BudgetTable'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; - function getNumPossibleMonths(width: number, categoryWidth: number) { const estimatedTableWidth = width - categoryWidth; diff --git a/packages/desktop-client/src/components/budget/ExpenseCategory.tsx b/packages/desktop-client/src/components/budget/ExpenseCategory.tsx index 0afc324e40..f74b191aa7 100644 --- a/packages/desktop-client/src/components/budget/ExpenseCategory.tsx +++ b/packages/desktop-client/src/components/budget/ExpenseCategory.tsx @@ -4,30 +4,25 @@ import type { ComponentProps } from 'react'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import { DropHighlight, useDraggable, useDroppable } from '#components/sort'; +import type { + DragState, + OnDragChangeCallback, + OnDropCallback, +} from '#components/sort'; +import { Row } from '#components/table'; +import { useDragRef } from '#hooks/useDragRef'; import { RenderMonths } from './RenderMonths'; import { SidebarCategory } from './SidebarCategory'; import { useBudgetComponents } from '.'; -import { - DropHighlight, - useDraggable, - useDroppable, -} from '@desktop-client/components/sort'; -import type { - DragState, - OnDragChangeCallback, - OnDropCallback, -} from '@desktop-client/components/sort'; -import { Row } from '@desktop-client/components/table'; -import { useDragRef } from '@desktop-client/hooks/useDragRef'; - type ExpenseCategoryProps = { cat: CategoryEntity; categoryGroup?: CategoryGroupEntity; diff --git a/packages/desktop-client/src/components/budget/ExpenseGroup.tsx b/packages/desktop-client/src/components/budget/ExpenseGroup.tsx index 492f0abd50..cf193b7ca6 100644 --- a/packages/desktop-client/src/components/budget/ExpenseGroup.tsx +++ b/packages/desktop-client/src/components/budget/ExpenseGroup.tsx @@ -4,30 +4,25 @@ import type { ComponentProps } from 'react'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import { DropHighlight, useDraggable, useDroppable } from '#components/sort'; +import type { + DragState, + OnDragChangeCallback, + OnDropCallback, +} from '#components/sort'; +import { Row, ROW_HEIGHT } from '#components/table'; +import { useDragRef } from '#hooks/useDragRef'; import { RenderMonths } from './RenderMonths'; import { SidebarGroup } from './SidebarGroup'; import { useBudgetComponents } from '.'; -import { - DropHighlight, - useDraggable, - useDroppable, -} from '@desktop-client/components/sort'; -import type { - DragState, - OnDragChangeCallback, - OnDropCallback, -} from '@desktop-client/components/sort'; -import { Row, ROW_HEIGHT } from '@desktop-client/components/table'; -import { useDragRef } from '@desktop-client/hooks/useDragRef'; - type ExpenseGroupProps = { group: ComponentProps['group']; collapsed: boolean; diff --git a/packages/desktop-client/src/components/budget/IncomeCategory.tsx b/packages/desktop-client/src/components/budget/IncomeCategory.tsx index ac8b8cd1f8..2ef25f5af1 100644 --- a/packages/desktop-client/src/components/budget/IncomeCategory.tsx +++ b/packages/desktop-client/src/components/budget/IncomeCategory.tsx @@ -2,25 +2,18 @@ import React from 'react'; import type { ComponentProps } from 'react'; -import type { CategoryEntity } from 'loot-core/types/models'; +import type { CategoryEntity } from '@actual-app/core/types/models'; + +import { DropHighlight, useDraggable, useDroppable } from '#components/sort'; +import type { OnDragChangeCallback, OnDropCallback } from '#components/sort'; +import { Row } from '#components/table'; +import { useDragRef } from '#hooks/useDragRef'; import { RenderMonths } from './RenderMonths'; import { SidebarCategory } from './SidebarCategory'; import { useBudgetComponents } from '.'; -import { - DropHighlight, - useDraggable, - useDroppable, -} from '@desktop-client/components/sort'; -import type { - OnDragChangeCallback, - OnDropCallback, -} from '@desktop-client/components/sort'; -import { Row } from '@desktop-client/components/table'; -import { useDragRef } from '@desktop-client/hooks/useDragRef'; - type IncomeCategoryProps = { cat: CategoryEntity; isLast?: boolean; diff --git a/packages/desktop-client/src/components/budget/IncomeGroup.tsx b/packages/desktop-client/src/components/budget/IncomeGroup.tsx index b43fad4da1..cdbb734d5b 100644 --- a/packages/desktop-client/src/components/budget/IncomeGroup.tsx +++ b/packages/desktop-client/src/components/budget/IncomeGroup.tsx @@ -2,16 +2,15 @@ import React from 'react'; import { theme } from '@actual-app/components/theme'; +import type { CategoryGroupEntity } from '@actual-app/core/types/models'; -import type { CategoryGroupEntity } from 'loot-core/types/models'; +import { Row } from '#components/table'; import { RenderMonths } from './RenderMonths'; import { SidebarGroup } from './SidebarGroup'; import { useBudgetComponents } from '.'; -import { Row } from '@desktop-client/components/table'; - type IncomeGroupProps = { group: CategoryGroupEntity; editingCell: { id: CategoryGroupEntity['id']; cell: string } | null; diff --git a/packages/desktop-client/src/components/budget/IncomeHeader.tsx b/packages/desktop-client/src/components/budget/IncomeHeader.tsx index f181fb023b..d31de195ca 100644 --- a/packages/desktop-client/src/components/budget/IncomeHeader.tsx +++ b/packages/desktop-client/src/components/budget/IncomeHeader.tsx @@ -4,12 +4,12 @@ import { Trans } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { View } from '@actual-app/components/view'; +import { useGlobalPref } from '#hooks/useGlobalPref'; + import { RenderMonths } from './RenderMonths'; import { useBudgetComponents } from '.'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; - type IncomeHeaderProps = { onShowNewGroup: () => void; }; diff --git a/packages/desktop-client/src/components/budget/MonthPicker.tsx b/packages/desktop-client/src/components/budget/MonthPicker.tsx index 52ccd238cc..30b9cc0c69 100644 --- a/packages/desktop-client/src/components/budget/MonthPicker.tsx +++ b/packages/desktop-client/src/components/budget/MonthPicker.tsx @@ -11,15 +11,14 @@ import { SvgCalendar } from '@actual-app/components/icons/v2'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; -import * as monthUtils from 'loot-core/shared/months'; +import { Link } from '#components/common/Link'; +import { useLocale } from '#hooks/useLocale'; +import { useResizeObserver } from '#hooks/useResizeObserver'; import type { MonthBounds } from './MonthsContext'; -import { Link } from '@desktop-client/components/common/Link'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useResizeObserver } from '@desktop-client/hooks/useResizeObserver'; - type MonthPickerProps = { startMonth: string; numDisplayed: number; diff --git a/packages/desktop-client/src/components/budget/MonthsContext.tsx b/packages/desktop-client/src/components/budget/MonthsContext.tsx index 8fd22e075b..ea9bcbc011 100644 --- a/packages/desktop-client/src/components/budget/MonthsContext.tsx +++ b/packages/desktop-client/src/components/budget/MonthsContext.tsx @@ -2,7 +2,7 @@ import React, { createContext } from 'react'; import type { ReactNode } from 'react'; -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; export type MonthBounds = { start: string; diff --git a/packages/desktop-client/src/components/budget/RenderMonths.tsx b/packages/desktop-client/src/components/budget/RenderMonths.tsx index c9cc2c1edf..2715db9fbe 100644 --- a/packages/desktop-client/src/components/budget/RenderMonths.tsx +++ b/packages/desktop-client/src/components/budget/RenderMonths.tsx @@ -3,13 +3,12 @@ import type { CSSProperties, ReactNode } from 'react'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; -import * as monthUtils from 'loot-core/shared/months'; +import { SheetNameProvider } from '#hooks/useSheetName'; import { MonthsContext } from './MonthsContext'; -import { SheetNameProvider } from '@desktop-client/hooks/useSheetName'; - type RenderMonthsProps = { children: ReactNode | (({ month }: { month: string }) => ReactNode); style?: CSSProperties; diff --git a/packages/desktop-client/src/components/budget/SidebarCategory.tsx b/packages/desktop-client/src/components/budget/SidebarCategory.tsx index c6b4cae875..5b22761520 100644 --- a/packages/desktop-client/src/components/budget/SidebarCategory.tsx +++ b/packages/desktop-client/src/components/budget/SidebarCategory.tsx @@ -10,18 +10,17 @@ import { Popover } from '@actual-app/components/popover'; import { TextOneLine } from '@actual-app/components/text-one-line'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import { InputCell } from '#components/table'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { useGlobalPref } from '#hooks/useGlobalPref'; import { SidebarCategoryButtons } from './SidebarCategoryButtons'; -import { InputCell } from '@desktop-client/components/table'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; - type SidebarCategoryProps = { innerRef: Ref; category: CategoryEntity; diff --git a/packages/desktop-client/src/components/budget/SidebarCategoryButtons.tsx b/packages/desktop-client/src/components/budget/SidebarCategoryButtons.tsx index 1e9a2e91d7..a523e6dce3 100644 --- a/packages/desktop-client/src/components/budget/SidebarCategoryButtons.tsx +++ b/packages/desktop-client/src/components/budget/SidebarCategoryButtons.tsx @@ -1,14 +1,13 @@ import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { CategoryEntity } from '@actual-app/core/types/models/category'; -import type { CategoryEntity } from 'loot-core/types/models/category'; +import { NotesButton } from '#components/NotesButton'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { useNotes } from '#hooks/useNotes'; import { CategoryAutomationButton } from './goals/CategoryAutomationButton'; -import { NotesButton } from '@desktop-client/components/NotesButton'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { useNotes } from '@desktop-client/hooks/useNotes'; - type SidebarCategoryButtonsProps = { category: CategoryEntity; dragging: boolean; diff --git a/packages/desktop-client/src/components/budget/SidebarGroup.tsx b/packages/desktop-client/src/components/budget/SidebarGroup.tsx index c80d0d9aa1..57ffb37e14 100644 --- a/packages/desktop-client/src/components/budget/SidebarGroup.tsx +++ b/packages/desktop-client/src/components/budget/SidebarGroup.tsx @@ -12,18 +12,17 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; -import { css, cx } from '@emotion/css'; - import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { css, cx } from '@emotion/css'; -import { NotesButton } from '@desktop-client/components/NotesButton'; -import { InputCell } from '@desktop-client/components/table'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; +import { NotesButton } from '#components/NotesButton'; +import { InputCell } from '#components/table'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { useGlobalPref } from '#hooks/useGlobalPref'; type SidebarGroupProps = { group: CategoryGroupEntity; diff --git a/packages/desktop-client/src/components/budget/envelope/BalanceMenu.tsx b/packages/desktop-client/src/components/budget/envelope/BalanceMenu.tsx index a845156f71..8205b96e0c 100644 --- a/packages/desktop-client/src/components/budget/envelope/BalanceMenu.tsx +++ b/packages/desktop-client/src/components/budget/envelope/BalanceMenu.tsx @@ -4,9 +4,9 @@ import { useTranslation } from 'react-i18next'; import { Menu } from '@actual-app/components/menu'; -import { useEnvelopeSheetValue } from './EnvelopeBudgetComponents'; +import { envelopeBudget } from '#spreadsheet/bindings'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; +import { useEnvelopeSheetValue } from './EnvelopeBudgetComponents'; type BalanceMenuProps = Omit< ComponentPropsWithoutRef, diff --git a/packages/desktop-client/src/components/budget/envelope/BalanceMovementMenu.tsx b/packages/desktop-client/src/components/budget/envelope/BalanceMovementMenu.tsx index 4ed717cc2b..cff42b85e4 100644 --- a/packages/desktop-client/src/components/budget/envelope/BalanceMovementMenu.tsx +++ b/packages/desktop-client/src/components/budget/envelope/BalanceMovementMenu.tsx @@ -1,13 +1,13 @@ import React, { useCallback, useRef, useState } from 'react'; +import { useFormat } from '#hooks/useFormat'; +import { envelopeBudget } from '#spreadsheet/bindings'; + import { BalanceMenu } from './BalanceMenu'; import { CoverMenu } from './CoverMenu'; import { useEnvelopeSheetValue } from './EnvelopeBudgetComponents'; import { TransferMenu } from './TransferMenu'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; - type BalanceMovementMenuProps = { categoryId: string; month: string; diff --git a/packages/desktop-client/src/components/budget/envelope/BudgetMenu.tsx b/packages/desktop-client/src/components/budget/envelope/BudgetMenu.tsx index 3416bde64c..87571ab4cd 100644 --- a/packages/desktop-client/src/components/budget/envelope/BudgetMenu.tsx +++ b/packages/desktop-client/src/components/budget/envelope/BudgetMenu.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next'; import { Menu } from '@actual-app/components/menu'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; type BudgetMenuProps = Omit< ComponentPropsWithoutRef, diff --git a/packages/desktop-client/src/components/budget/envelope/CoverMenu.tsx b/packages/desktop-client/src/components/budget/envelope/CoverMenu.tsx index d365647376..a32011b02b 100644 --- a/packages/desktop-client/src/components/budget/envelope/CoverMenu.tsx +++ b/packages/desktop-client/src/components/budget/envelope/CoverMenu.tsx @@ -6,18 +6,20 @@ import { Button } from '@actual-app/components/button'; import { Input } from '@actual-app/components/input'; import { styles } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; +import { evalArithmetic } from '@actual-app/core/shared/arithmetic'; +import { + amountToInteger, + integerToCurrency, +} from '@actual-app/core/shared/util'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { CategoryEntity } from '@actual-app/core/types/models'; -import { evalArithmetic } from 'loot-core/shared/arithmetic'; -import { amountToInteger, integerToCurrency } from 'loot-core/shared/util'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { CategoryEntity } from 'loot-core/types/models'; - -import { CategoryAutocomplete } from '@desktop-client/components/autocomplete/CategoryAutocomplete'; +import { CategoryAutocomplete } from '#components/autocomplete/CategoryAutocomplete'; import { addToBeBudgetedGroup, removeCategoriesFromGroups, -} from '@desktop-client/components/budget/util'; -import { useCategories } from '@desktop-client/hooks/useCategories'; +} from '#components/budget/util'; +import { useCategories } from '#hooks/useCategories'; type CoverMenuProps = { showToBeBudgeted?: boolean; diff --git a/packages/desktop-client/src/components/budget/envelope/EnvelopeBudgetComponents.tsx b/packages/desktop-client/src/components/budget/envelope/EnvelopeBudgetComponents.tsx index 8883278c94..6d4be8de38 100644 --- a/packages/desktop-client/src/components/budget/envelope/EnvelopeBudgetComponents.tsx +++ b/packages/desktop-client/src/components/budget/envelope/EnvelopeBudgetComponents.tsx @@ -13,35 +13,30 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; import { css } from '@emotion/css'; -import * as monthUtils from 'loot-core/shared/months'; - +import { BalanceWithCarryover } from '#components/budget/BalanceWithCarryover'; +import { makeAmountGrey } from '#components/budget/util'; +import { NotesButton } from '#components/NotesButton'; +import { CellValue, CellValueText } from '#components/spreadsheet/CellValue'; +import { Field, Row, SheetCell } from '#components/table'; +import type { SheetCellProps } from '#components/table'; +import { useCategoryScheduleGoalTemplateIndicator } from '#hooks/useCategoryScheduleGoalTemplateIndicator'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { useFormat } from '#hooks/useFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { useSheetName } from '#hooks/useSheetName'; +import { useSheetValue } from '#hooks/useSheetValue'; +import { useUndo } from '#hooks/useUndo'; +import type { Binding, SheetFields } from '#spreadsheet'; +import { envelopeBudget } from '#spreadsheet/bindings'; import type { CategoryGroupMonthProps, CategoryMonthProps } from '..'; import { BalanceMovementMenu } from './BalanceMovementMenu'; import { BudgetMenu } from './BudgetMenu'; import { IncomeMenu } from './IncomeMenu'; -import { BalanceWithCarryover } from '@desktop-client/components/budget/BalanceWithCarryover'; -import { makeAmountGrey } from '@desktop-client/components/budget/util'; -import { NotesButton } from '@desktop-client/components/NotesButton'; -import { - CellValue, - CellValueText, -} from '@desktop-client/components/spreadsheet/CellValue'; -import { Field, Row, SheetCell } from '@desktop-client/components/table'; -import type { SheetCellProps } from '@desktop-client/components/table'; -import { useCategoryScheduleGoalTemplateIndicator } from '@desktop-client/hooks/useCategoryScheduleGoalTemplateIndicator'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useSheetName } from '@desktop-client/hooks/useSheetName'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import type { Binding, SheetFields } from '@desktop-client/spreadsheet'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; - export function useEnvelopeSheetName< FieldName extends SheetFields<'envelope-budget'>, >(binding: Binding<'envelope-budget', FieldName>) { diff --git a/packages/desktop-client/src/components/budget/envelope/EnvelopeBudgetContext.tsx b/packages/desktop-client/src/components/budget/envelope/EnvelopeBudgetContext.tsx index a080c84ca2..c05ffc51fb 100644 --- a/packages/desktop-client/src/components/budget/envelope/EnvelopeBudgetContext.tsx +++ b/packages/desktop-client/src/components/budget/envelope/EnvelopeBudgetContext.tsx @@ -1,7 +1,7 @@ import React, { createContext, useContext } from 'react'; import type { ReactNode } from 'react'; -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; type EnvelopeBudgetContextDefinition = { summaryCollapsed: boolean; diff --git a/packages/desktop-client/src/components/budget/envelope/HoldMenu.tsx b/packages/desktop-client/src/components/budget/envelope/HoldMenu.tsx index f6a040b40e..fc203b4497 100644 --- a/packages/desktop-client/src/components/budget/envelope/HoldMenu.tsx +++ b/packages/desktop-client/src/components/budget/envelope/HoldMenu.tsx @@ -5,11 +5,10 @@ import { Trans } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { InitialFocus } from '@actual-app/components/initial-focus'; import { View } from '@actual-app/components/view'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; -import type { IntegerAmount } from 'loot-core/shared/util'; - -import { FinancialInput } from '@desktop-client/components/util/FinancialInput'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; +import { FinancialInput } from '#components/util/FinancialInput'; +import { useSheetValue } from '#hooks/useSheetValue'; type HoldMenuProps = { onSubmit: (amount: number) => void; diff --git a/packages/desktop-client/src/components/budget/envelope/IncomeMenu.tsx b/packages/desktop-client/src/components/budget/envelope/IncomeMenu.tsx index 3db2f41139..4e197dd2b3 100644 --- a/packages/desktop-client/src/components/budget/envelope/IncomeMenu.tsx +++ b/packages/desktop-client/src/components/budget/envelope/IncomeMenu.tsx @@ -1,13 +1,12 @@ import { useTranslation } from 'react-i18next'; import { Menu } from '@actual-app/components/menu'; +import type { CategoryEntity } from '@actual-app/core/types/models'; -import type { CategoryEntity } from 'loot-core/types/models'; +import { envelopeBudget } from '#spreadsheet/bindings'; import { useEnvelopeSheetValue } from './EnvelopeBudgetComponents'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; - type IncomeMenuProps = { categoryId: string; month: string; diff --git a/packages/desktop-client/src/components/budget/envelope/TransferMenu.tsx b/packages/desktop-client/src/components/budget/envelope/TransferMenu.tsx index f7272e1904..f1a796ae73 100644 --- a/packages/desktop-client/src/components/budget/envelope/TransferMenu.tsx +++ b/packages/desktop-client/src/components/budget/envelope/TransferMenu.tsx @@ -5,17 +5,16 @@ import { Trans } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { InitialFocus } from '@actual-app/components/initial-focus'; import { View } from '@actual-app/components/view'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { CategoryEntity } from '@actual-app/core/types/models'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { CategoryEntity } from 'loot-core/types/models'; - -import { CategoryAutocomplete } from '@desktop-client/components/autocomplete/CategoryAutocomplete'; +import { CategoryAutocomplete } from '#components/autocomplete/CategoryAutocomplete'; import { addToBeBudgetedGroup, removeCategoriesFromGroups, -} from '@desktop-client/components/budget/util'; -import { FinancialInput } from '@desktop-client/components/util/FinancialInput'; -import { useCategories } from '@desktop-client/hooks/useCategories'; +} from '#components/budget/util'; +import { FinancialInput } from '#components/util/FinancialInput'; +import { useCategories } from '#hooks/useCategories'; type TransferMenuProps = { categoryId?: CategoryEntity['id']; diff --git a/packages/desktop-client/src/components/budget/envelope/budgetsummary/BudgetMonthMenu.tsx b/packages/desktop-client/src/components/budget/envelope/budgetsummary/BudgetMonthMenu.tsx index 9cbea4c3e4..5ee1983ac2 100644 --- a/packages/desktop-client/src/components/budget/envelope/budgetsummary/BudgetMonthMenu.tsx +++ b/packages/desktop-client/src/components/budget/envelope/budgetsummary/BudgetMonthMenu.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next'; import { Menu } from '@actual-app/components/menu'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; type BudgetMonthMenuProps = Omit< ComponentPropsWithoutRef, diff --git a/packages/desktop-client/src/components/budget/envelope/budgetsummary/BudgetSummary.tsx b/packages/desktop-client/src/components/budget/envelope/budgetsummary/BudgetSummary.tsx index 7e63a0153b..8f92a2f344 100644 --- a/packages/desktop-client/src/components/budget/envelope/budgetsummary/BudgetSummary.tsx +++ b/packages/desktop-client/src/components/budget/envelope/budgetsummary/BudgetSummary.tsx @@ -11,20 +11,19 @@ import { Popover } from '@actual-app/components/popover'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; import { css } from '@emotion/css'; -import * as monthUtils from 'loot-core/shared/months'; +import { useEnvelopeBudget } from '#components/budget/envelope/EnvelopeBudgetContext'; +import { NotesButton } from '#components/NotesButton'; +import { useLocale } from '#hooks/useLocale'; +import { SheetNameProvider } from '#hooks/useSheetName'; +import { useUndo } from '#hooks/useUndo'; import { BudgetMonthMenu } from './BudgetMonthMenu'; import { ToBudget } from './ToBudget'; import { TotalsList } from './TotalsList'; -import { useEnvelopeBudget } from '@desktop-client/components/budget/envelope/EnvelopeBudgetContext'; -import { NotesButton } from '@desktop-client/components/NotesButton'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { SheetNameProvider } from '@desktop-client/hooks/useSheetName'; -import { useUndo } from '@desktop-client/hooks/useUndo'; - type BudgetSummaryProps = { month: string; }; diff --git a/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudget.tsx b/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudget.tsx index 0993a5ed2e..3ece03ea5e 100644 --- a/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudget.tsx +++ b/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudget.tsx @@ -4,17 +4,17 @@ import type { CSSProperties } from 'react'; import { Popover } from '@actual-app/components/popover'; import { View } from '@actual-app/components/view'; +import { CoverMenu } from '#components/budget/envelope/CoverMenu'; +import { useEnvelopeSheetValue } from '#components/budget/envelope/EnvelopeBudgetComponents'; +import { HoldMenu } from '#components/budget/envelope/HoldMenu'; +import { TransferMenu } from '#components/budget/envelope/TransferMenu'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { useFormat } from '#hooks/useFormat'; +import { envelopeBudget } from '#spreadsheet/bindings'; + import { ToBudgetAmount } from './ToBudgetAmount'; import { ToBudgetMenu } from './ToBudgetMenu'; -import { CoverMenu } from '@desktop-client/components/budget/envelope/CoverMenu'; -import { useEnvelopeSheetValue } from '@desktop-client/components/budget/envelope/EnvelopeBudgetComponents'; -import { HoldMenu } from '@desktop-client/components/budget/envelope/HoldMenu'; -import { TransferMenu } from '@desktop-client/components/budget/envelope/TransferMenu'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; - type ToBudgetProps = { month: string; onBudgetAction: (month: string, action: string, arg?: unknown) => void; diff --git a/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudgetAmount.tsx b/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudgetAmount.tsx index a8d3dc0fe1..d8c46b0c58 100644 --- a/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudgetAmount.tsx +++ b/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudgetAmount.tsx @@ -9,16 +9,16 @@ import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; import { css } from '@emotion/css'; -import { TotalsList } from './TotalsList'; - import { useEnvelopeSheetName, useEnvelopeSheetValue, -} from '@desktop-client/components/budget/envelope/EnvelopeBudgetComponents'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; +} from '#components/budget/envelope/EnvelopeBudgetComponents'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { useFormat } from '#hooks/useFormat'; +import { envelopeBudget } from '#spreadsheet/bindings'; + +import { TotalsList } from './TotalsList'; type ToBudgetAmountProps = { prevMonthName: string; diff --git a/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudgetMenu.tsx b/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudgetMenu.tsx index fb2305b59b..831548cc10 100644 --- a/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudgetMenu.tsx +++ b/packages/desktop-client/src/components/budget/envelope/budgetsummary/ToBudgetMenu.tsx @@ -4,8 +4,8 @@ import { useTranslation } from 'react-i18next'; import { Menu } from '@actual-app/components/menu'; -import { useEnvelopeSheetValue } from '@desktop-client/components/budget/envelope/EnvelopeBudgetComponents'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; +import { useEnvelopeSheetValue } from '#components/budget/envelope/EnvelopeBudgetComponents'; +import { envelopeBudget } from '#spreadsheet/bindings'; type ToBudgetMenuProps = Omit< ComponentPropsWithoutRef, diff --git a/packages/desktop-client/src/components/budget/envelope/budgetsummary/TotalsList.tsx b/packages/desktop-client/src/components/budget/envelope/budgetsummary/TotalsList.tsx index d4fdcf16f7..c324a267c1 100644 --- a/packages/desktop-client/src/components/budget/envelope/budgetsummary/TotalsList.tsx +++ b/packages/desktop-client/src/components/budget/envelope/budgetsummary/TotalsList.tsx @@ -8,11 +8,11 @@ import { styles } from '@actual-app/components/styles'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; -import { EnvelopeCellValue } from '@desktop-client/components/budget/envelope/EnvelopeBudgetComponents'; -import { CellValueText } from '@desktop-client/components/spreadsheet/CellValue'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; +import { EnvelopeCellValue } from '#components/budget/envelope/EnvelopeBudgetComponents'; +import { CellValueText } from '#components/spreadsheet/CellValue'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { envelopeBudget } from '#spreadsheet/bindings'; /** * Creates a formatter that displays values with explicit +/- signs. diff --git a/packages/desktop-client/src/components/budget/goals/BudgetAutomation.tsx b/packages/desktop-client/src/components/budget/goals/BudgetAutomation.tsx index 584dcce077..4e99b72fc5 100644 --- a/packages/desktop-client/src/components/budget/goals/BudgetAutomation.tsx +++ b/packages/desktop-client/src/components/budget/goals/BudgetAutomation.tsx @@ -2,21 +2,20 @@ import { useMemo, useReducer, useRef, useState } from 'react'; import { SpaceBetween } from '@actual-app/components/space-between'; import type { CSSProperties } from '@actual-app/components/styles'; - -import { firstDayOfMonth } from 'loot-core/shared/months'; +import { firstDayOfMonth } from '@actual-app/core/shared/months'; import type { CategoryGroupEntity, ScheduleEntity, -} from 'loot-core/types/models'; -import type { Template } from 'loot-core/types/models/templates'; +} from '@actual-app/core/types/models'; +import type { Template } from '@actual-app/core/types/models/templates'; + +import { useEffectAfterMount } from '#hooks/useEffectAfterMount'; import { BudgetAutomationEditor } from './BudgetAutomationEditor'; import { BudgetAutomationReadOnly } from './BudgetAutomationReadOnly'; import type { DisplayTemplateType } from './constants'; import { DEFAULT_PRIORITY, getInitialState, templateReducer } from './reducer'; -import { useEffectAfterMount } from '@desktop-client/hooks/useEffectAfterMount'; - type BudgetAutomationProps = { categories: CategoryGroupEntity[]; schedules: readonly ScheduleEntity[]; diff --git a/packages/desktop-client/src/components/budget/goals/BudgetAutomationEditor.tsx b/packages/desktop-client/src/components/budget/goals/BudgetAutomationEditor.tsx index d54e774725..77f252188d 100644 --- a/packages/desktop-client/src/components/budget/goals/BudgetAutomationEditor.tsx +++ b/packages/desktop-client/src/components/budget/goals/BudgetAutomationEditor.tsx @@ -7,11 +7,12 @@ import { SpaceBetween } from '@actual-app/components/space-between'; import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; - import type { CategoryGroupEntity, ScheduleEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import { FormField, FormLabel, FormTextLabel } from '#components/forms'; import { setType } from './actions'; import type { Action } from './actions'; @@ -24,12 +25,6 @@ import { RefillAutomation } from './editor/RefillAutomation'; import { ScheduleAutomation } from './editor/ScheduleAutomation'; import { WeekAutomation } from './editor/WeekAutomation'; -import { - FormField, - FormLabel, - FormTextLabel, -} from '@desktop-client/components/forms'; - type BudgetAutomationEditorProps = { inline: boolean; state: ReducerState; diff --git a/packages/desktop-client/src/components/budget/goals/CategoryAutomationButton.tsx b/packages/desktop-client/src/components/budget/goals/CategoryAutomationButton.tsx index d0b72fce65..36aac905c9 100644 --- a/packages/desktop-client/src/components/budget/goals/CategoryAutomationButton.tsx +++ b/packages/desktop-client/src/components/budget/goals/CategoryAutomationButton.tsx @@ -5,13 +5,12 @@ import { Button } from '@actual-app/components/button'; import { SvgChartPie } from '@actual-app/components/icons/v1'; import type { CSSProperties } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; +import type { CategoryEntity } from '@actual-app/core/types/models'; import { css, cx } from '@emotion/css'; -import type { CategoryEntity } from 'loot-core/types/models'; - -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; type CategoryAutomationButtonProps = { category: CategoryEntity; diff --git a/packages/desktop-client/src/components/budget/goals/actions.ts b/packages/desktop-client/src/components/budget/goals/actions.ts index ac1538e58f..d347aa4897 100644 --- a/packages/desktop-client/src/components/budget/goals/actions.ts +++ b/packages/desktop-client/src/components/budget/goals/actions.ts @@ -1,4 +1,4 @@ -import type { Template } from 'loot-core/types/models/templates'; +import type { Template } from '@actual-app/core/types/models/templates'; import type { DisplayTemplateType } from './constants'; diff --git a/packages/desktop-client/src/components/budget/goals/constants.ts b/packages/desktop-client/src/components/budget/goals/constants.ts index 2d59b11fc4..f6c310bede 100644 --- a/packages/desktop-client/src/components/budget/goals/constants.ts +++ b/packages/desktop-client/src/components/budget/goals/constants.ts @@ -6,7 +6,7 @@ import type { PeriodicTemplate, RefillTemplate, ScheduleTemplate, -} from 'loot-core/types/models/templates'; +} from '@actual-app/core/types/models/templates'; export const displayTemplateTypes = [ ['limit', 'Balance limit'] as const, diff --git a/packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomation.tsx b/packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomation.tsx index 44604d7311..8ac8f993d6 100644 --- a/packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomation.tsx +++ b/packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomation.tsx @@ -2,16 +2,15 @@ import { useTranslation } from 'react-i18next'; import { Select } from '@actual-app/components/select'; import { SpaceBetween } from '@actual-app/components/space-between'; - import type { AverageTemplate, CopyTemplate, -} from 'loot-core/types/models/templates'; +} from '@actual-app/core/types/models/templates'; -import { updateTemplate } from '@desktop-client/components/budget/goals/actions'; -import type { Action } from '@desktop-client/components/budget/goals/actions'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import { GenericInput } from '@desktop-client/components/util/GenericInput'; +import { updateTemplate } from '#components/budget/goals/actions'; +import type { Action } from '#components/budget/goals/actions'; +import { FormField, FormLabel } from '#components/forms'; +import { GenericInput } from '#components/util/GenericInput'; type HistoricalAutomationProps = { template: CopyTemplate | AverageTemplate; diff --git a/packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomationReadOnly.tsx b/packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomationReadOnly.tsx index 5b6311c429..39c6a10157 100644 --- a/packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomationReadOnly.tsx +++ b/packages/desktop-client/src/components/budget/goals/editor/HistoricalAutomationReadOnly.tsx @@ -3,7 +3,7 @@ import { Trans } from 'react-i18next'; import type { AverageTemplate, CopyTemplate, -} from 'loot-core/types/models/templates'; +} from '@actual-app/core/types/models/templates'; type HistoricalAutomationReadOnlyProps = { template: CopyTemplate | AverageTemplate; diff --git a/packages/desktop-client/src/components/budget/goals/editor/LimitAutomation.tsx b/packages/desktop-client/src/components/budget/goals/editor/LimitAutomation.tsx index 0155e23d53..cf7ea24d5d 100644 --- a/packages/desktop-client/src/components/budget/goals/editor/LimitAutomation.tsx +++ b/packages/desktop-client/src/components/budget/goals/editor/LimitAutomation.tsx @@ -4,20 +4,23 @@ import { Select } from '@actual-app/components/select'; import { SpaceBetween } from '@actual-app/components/space-between'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { + currentDate, + dayFromDate, + parseDate, +} from '@actual-app/core/shared/months'; +import { amountToInteger, integerToAmount } from '@actual-app/core/shared/util'; +import type { LimitTemplate } from '@actual-app/core/types/models/templates'; import { css } from '@emotion/css'; import { getDay } from 'date-fns/getDay'; import { setDay } from 'date-fns/setDay'; -import { currentDate, dayFromDate, parseDate } from 'loot-core/shared/months'; -import { amountToInteger, integerToAmount } from 'loot-core/shared/util'; -import type { LimitTemplate } from 'loot-core/types/models/templates'; - -import { updateTemplate } from '@desktop-client/components/budget/goals/actions'; -import type { Action } from '@desktop-client/components/budget/goals/actions'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import { AmountInput } from '@desktop-client/components/util/AmountInput'; -import { useDaysOfWeek } from '@desktop-client/hooks/useDaysOfWeek'; -import { useFormat } from '@desktop-client/hooks/useFormat'; +import { updateTemplate } from '#components/budget/goals/actions'; +import type { Action } from '#components/budget/goals/actions'; +import { FormField, FormLabel } from '#components/forms'; +import { AmountInput } from '#components/util/AmountInput'; +import { useDaysOfWeek } from '#hooks/useDaysOfWeek'; +import { useFormat } from '#hooks/useFormat'; type LimitAutomationProps = { template: LimitTemplate; diff --git a/packages/desktop-client/src/components/budget/goals/editor/LimitAutomationReadOnly.tsx b/packages/desktop-client/src/components/budget/goals/editor/LimitAutomationReadOnly.tsx index 0db99fa656..31cde66c48 100644 --- a/packages/desktop-client/src/components/budget/goals/editor/LimitAutomationReadOnly.tsx +++ b/packages/desktop-client/src/components/budget/goals/editor/LimitAutomationReadOnly.tsx @@ -1,9 +1,9 @@ import { Trans } from 'react-i18next'; -import { amountToInteger } from 'loot-core/shared/util'; -import type { LimitTemplate } from 'loot-core/types/models/templates'; +import { amountToInteger } from '@actual-app/core/shared/util'; +import type { LimitTemplate } from '@actual-app/core/types/models/templates'; -import { useFormat } from '@desktop-client/hooks/useFormat'; +import { useFormat } from '#hooks/useFormat'; type LimitAutomationReadOnlyProps = { template: LimitTemplate; diff --git a/packages/desktop-client/src/components/budget/goals/editor/PercentageAutomation.tsx b/packages/desktop-client/src/components/budget/goals/editor/PercentageAutomation.tsx index 1180104264..bafc9c33df 100644 --- a/packages/desktop-client/src/components/budget/goals/editor/PercentageAutomation.tsx +++ b/packages/desktop-client/src/components/budget/goals/editor/PercentageAutomation.tsx @@ -3,18 +3,17 @@ import { useTranslation } from 'react-i18next'; import { Select } from '@actual-app/components/select'; import { SpaceBetween } from '@actual-app/components/space-between'; import { View } from '@actual-app/components/view'; - import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; -import type { PercentageTemplate } from 'loot-core/types/models/templates'; +} from '@actual-app/core/types/models'; +import type { PercentageTemplate } from '@actual-app/core/types/models/templates'; -import { CategoryAutocomplete } from '@desktop-client/components/autocomplete/CategoryAutocomplete'; -import { updateTemplate } from '@desktop-client/components/budget/goals/actions'; -import type { Action } from '@desktop-client/components/budget/goals/actions'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import { PercentInput } from '@desktop-client/components/util/PercentInput'; +import { CategoryAutocomplete } from '#components/autocomplete/CategoryAutocomplete'; +import { updateTemplate } from '#components/budget/goals/actions'; +import type { Action } from '#components/budget/goals/actions'; +import { FormField, FormLabel } from '#components/forms'; +import { PercentInput } from '#components/util/PercentInput'; type PercentageAutomationProps = { dispatch: (action: Action) => void; diff --git a/packages/desktop-client/src/components/budget/goals/editor/PercentageAutomationReadOnly.tsx b/packages/desktop-client/src/components/budget/goals/editor/PercentageAutomationReadOnly.tsx index 84f7649c17..2cb3f2c9b6 100644 --- a/packages/desktop-client/src/components/budget/goals/editor/PercentageAutomationReadOnly.tsx +++ b/packages/desktop-client/src/components/budget/goals/editor/PercentageAutomationReadOnly.tsx @@ -1,6 +1,6 @@ import { Trans, useTranslation } from 'react-i18next'; -import type { PercentageTemplate } from 'loot-core/types/models/templates'; +import type { PercentageTemplate } from '@actual-app/core/types/models/templates'; type PercentageAutomationReadOnlyProps = { template: PercentageTemplate; diff --git a/packages/desktop-client/src/components/budget/goals/editor/RefillAutomation.tsx b/packages/desktop-client/src/components/budget/goals/editor/RefillAutomation.tsx index 483493efd8..80e5d94345 100644 --- a/packages/desktop-client/src/components/budget/goals/editor/RefillAutomation.tsx +++ b/packages/desktop-client/src/components/budget/goals/editor/RefillAutomation.tsx @@ -4,7 +4,7 @@ import { Button } from '@actual-app/components/button'; import { SpaceBetween } from '@actual-app/components/space-between'; import { View } from '@actual-app/components/view'; -import { Warning } from '@desktop-client/components/alerts'; +import { Warning } from '#components/alerts'; type RefillAutomationProps = { hasLimitAutomation: boolean; diff --git a/packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomation.tsx b/packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomation.tsx index 56f8830b3d..5c5ffde86e 100644 --- a/packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomation.tsx +++ b/packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomation.tsx @@ -3,14 +3,13 @@ import { Trans, useTranslation } from 'react-i18next'; import { Select } from '@actual-app/components/select'; import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; +import type { ScheduleEntity } from '@actual-app/core/types/models'; +import type { ScheduleTemplate } from '@actual-app/core/types/models/templates'; -import type { ScheduleEntity } from 'loot-core/types/models'; -import type { ScheduleTemplate } from 'loot-core/types/models/templates'; - -import { updateTemplate } from '@desktop-client/components/budget/goals/actions'; -import type { Action } from '@desktop-client/components/budget/goals/actions'; -import { Link } from '@desktop-client/components/common/Link'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; +import { updateTemplate } from '#components/budget/goals/actions'; +import type { Action } from '#components/budget/goals/actions'; +import { Link } from '#components/common/Link'; +import { FormField, FormLabel } from '#components/forms'; type ScheduleAutomationProps = { schedules: readonly ScheduleEntity[]; diff --git a/packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomationReadOnly.tsx b/packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomationReadOnly.tsx index 857e48db8d..1db91a36d2 100644 --- a/packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomationReadOnly.tsx +++ b/packages/desktop-client/src/components/budget/goals/editor/ScheduleAutomationReadOnly.tsx @@ -1,6 +1,6 @@ import { Trans } from 'react-i18next'; -import type { ScheduleTemplate } from 'loot-core/types/models/templates'; +import type { ScheduleTemplate } from '@actual-app/core/types/models/templates'; type ScheduleAutomationReadOnlyProps = { template: ScheduleTemplate; diff --git a/packages/desktop-client/src/components/budget/goals/editor/WeekAutomation.tsx b/packages/desktop-client/src/components/budget/goals/editor/WeekAutomation.tsx index 704bf8d7bc..5951ef55bc 100644 --- a/packages/desktop-client/src/components/budget/goals/editor/WeekAutomation.tsx +++ b/packages/desktop-client/src/components/budget/goals/editor/WeekAutomation.tsx @@ -1,11 +1,11 @@ import { useTranslation } from 'react-i18next'; -import type { PeriodicTemplate } from 'loot-core/types/models/templates'; +import type { PeriodicTemplate } from '@actual-app/core/types/models/templates'; -import { updateTemplate } from '@desktop-client/components/budget/goals/actions'; -import type { Action } from '@desktop-client/components/budget/goals/actions'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import { AmountInput } from '@desktop-client/components/util/AmountInput'; +import { updateTemplate } from '#components/budget/goals/actions'; +import type { Action } from '#components/budget/goals/actions'; +import { FormField, FormLabel } from '#components/forms'; +import { AmountInput } from '#components/util/AmountInput'; type WeekAutomationProps = { template: PeriodicTemplate; diff --git a/packages/desktop-client/src/components/budget/goals/editor/WeekAutomationReadOnly.tsx b/packages/desktop-client/src/components/budget/goals/editor/WeekAutomationReadOnly.tsx index 5285930fbf..c7646b7fc5 100644 --- a/packages/desktop-client/src/components/budget/goals/editor/WeekAutomationReadOnly.tsx +++ b/packages/desktop-client/src/components/budget/goals/editor/WeekAutomationReadOnly.tsx @@ -1,10 +1,10 @@ import { Trans } from 'react-i18next'; -import type { PeriodicTemplate } from 'loot-core/types/models/templates'; -import type { TransObjectLiteral } from 'loot-core/types/util'; +import type { PeriodicTemplate } from '@actual-app/core/types/models/templates'; +import type { TransObjectLiteral } from '@actual-app/core/types/util'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { useFormat } from '@desktop-client/hooks/useFormat'; +import { FinancialText } from '#components/FinancialText'; +import { useFormat } from '#hooks/useFormat'; type WeekAutomationReadOnlyProps = { template: PeriodicTemplate; diff --git a/packages/desktop-client/src/components/budget/goals/reducer.ts b/packages/desktop-client/src/components/budget/goals/reducer.ts index 5ce50eff50..986ceba6af 100644 --- a/packages/desktop-client/src/components/budget/goals/reducer.ts +++ b/packages/desktop-client/src/components/budget/goals/reducer.ts @@ -1,5 +1,5 @@ -import { firstDayOfMonth } from 'loot-core/shared/months'; -import type { Template } from 'loot-core/types/models/templates'; +import { firstDayOfMonth } from '@actual-app/core/shared/months'; +import type { Template } from '@actual-app/core/types/models/templates'; import type { Action } from './actions'; import type { DisplayTemplateType, ReducerState } from './constants'; diff --git a/packages/desktop-client/src/components/budget/goals/useBudgetAutomationCategories.ts b/packages/desktop-client/src/components/budget/goals/useBudgetAutomationCategories.ts index 1b59513974..f72e6cde26 100644 --- a/packages/desktop-client/src/components/budget/goals/useBudgetAutomationCategories.ts +++ b/packages/desktop-client/src/components/budget/goals/useBudgetAutomationCategories.ts @@ -1,7 +1,7 @@ import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; -import { useCategories } from '@desktop-client/hooks/useCategories'; +import { useCategories } from '#hooks/useCategories'; export function useBudgetAutomationCategories() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/budget/index.tsx b/packages/desktop-client/src/components/budget/index.tsx index 7fc984a0c0..222b95bde1 100644 --- a/packages/desktop-client/src/components/budget/index.tsx +++ b/packages/desktop-client/src/components/budget/index.tsx @@ -4,20 +4,12 @@ import type { ComponentType } from 'react'; import { styles } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; - -import { AutoSizingBudgetTable } from './DynamicBudgetTable'; -import * as envelopeBudget from './envelope/EnvelopeBudgetComponents'; -import { EnvelopeBudgetProvider } from './envelope/EnvelopeBudgetContext'; -import * as trackingBudget from './tracking/TrackingBudgetComponents'; -import { TrackingBudgetProvider } from './tracking/TrackingBudgetContext'; -import { prewarmAllMonths, prewarmMonth } from './util'; +} from '@actual-app/core/types/models'; import { useBudgetActions, @@ -27,14 +19,21 @@ import { useReorderCategoryMutation, useSaveCategoryGroupMutation, useSaveCategoryMutation, -} from '@desktop-client/budget'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { SheetNameProvider } from '@desktop-client/hooks/useSheetName'; -import { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; +} from '#budget'; +import { useCategories } from '#hooks/useCategories'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { useNavigate } from '#hooks/useNavigate'; +import { SheetNameProvider } from '#hooks/useSheetName'; +import { useSpreadsheet } from '#hooks/useSpreadsheet'; +import { useSyncedPref } from '#hooks/useSyncedPref'; + +import { AutoSizingBudgetTable } from './DynamicBudgetTable'; +import * as envelopeBudget from './envelope/EnvelopeBudgetComponents'; +import { EnvelopeBudgetProvider } from './envelope/EnvelopeBudgetContext'; +import * as trackingBudget from './tracking/TrackingBudgetComponents'; +import { TrackingBudgetProvider } from './tracking/TrackingBudgetContext'; +import { prewarmAllMonths, prewarmMonth } from './util'; export function Budget() { const currentMonth = monthUtils.currentMonth(); diff --git a/packages/desktop-client/src/components/budget/tracking/BalanceMenu.tsx b/packages/desktop-client/src/components/budget/tracking/BalanceMenu.tsx index 01d6da269a..a85f7ddf4d 100644 --- a/packages/desktop-client/src/components/budget/tracking/BalanceMenu.tsx +++ b/packages/desktop-client/src/components/budget/tracking/BalanceMenu.tsx @@ -4,9 +4,9 @@ import { useTranslation } from 'react-i18next'; import { Menu } from '@actual-app/components/menu'; -import { useTrackingSheetValue } from './TrackingBudgetComponents'; +import { trackingBudget } from '#spreadsheet/bindings'; -import { trackingBudget } from '@desktop-client/spreadsheet/bindings'; +import { useTrackingSheetValue } from './TrackingBudgetComponents'; type BalanceMenuProps = Omit< ComponentPropsWithoutRef, diff --git a/packages/desktop-client/src/components/budget/tracking/BudgetMenu.tsx b/packages/desktop-client/src/components/budget/tracking/BudgetMenu.tsx index 88ed173025..68e6ba87f8 100644 --- a/packages/desktop-client/src/components/budget/tracking/BudgetMenu.tsx +++ b/packages/desktop-client/src/components/budget/tracking/BudgetMenu.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next'; import { Menu } from '@actual-app/components/menu'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; type BudgetMenuProps = Omit< ComponentPropsWithoutRef, diff --git a/packages/desktop-client/src/components/budget/tracking/TrackingBudgetComponents.tsx b/packages/desktop-client/src/components/budget/tracking/TrackingBudgetComponents.tsx index 31db374a98..e7e3e3ee2d 100644 --- a/packages/desktop-client/src/components/budget/tracking/TrackingBudgetComponents.tsx +++ b/packages/desktop-client/src/components/budget/tracking/TrackingBudgetComponents.tsx @@ -14,33 +14,28 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; import { css } from '@emotion/css'; import { t } from 'i18next'; -import * as monthUtils from 'loot-core/shared/months'; - +import { BalanceWithCarryover } from '#components/budget/BalanceWithCarryover'; +import { makeAmountGrey } from '#components/budget/util'; +import { NotesButton } from '#components/NotesButton'; +import { CellValue, CellValueText } from '#components/spreadsheet/CellValue'; +import { Field, SheetCell } from '#components/table'; +import type { SheetCellProps } from '#components/table'; +import { useCategoryScheduleGoalTemplateIndicator } from '#hooks/useCategoryScheduleGoalTemplateIndicator'; +import { useFormat } from '#hooks/useFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { useSheetValue } from '#hooks/useSheetValue'; +import { useUndo } from '#hooks/useUndo'; +import type { Binding, SheetFields } from '#spreadsheet'; +import { trackingBudget } from '#spreadsheet/bindings'; import type { CategoryGroupMonthProps, CategoryMonthProps } from '..'; import { BalanceMenu } from './BalanceMenu'; import { BudgetMenu } from './BudgetMenu'; -import { BalanceWithCarryover } from '@desktop-client/components/budget/BalanceWithCarryover'; -import { makeAmountGrey } from '@desktop-client/components/budget/util'; -import { NotesButton } from '@desktop-client/components/NotesButton'; -import { - CellValue, - CellValueText, -} from '@desktop-client/components/spreadsheet/CellValue'; -import { Field, SheetCell } from '@desktop-client/components/table'; -import type { SheetCellProps } from '@desktop-client/components/table'; -import { useCategoryScheduleGoalTemplateIndicator } from '@desktop-client/hooks/useCategoryScheduleGoalTemplateIndicator'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import type { Binding, SheetFields } from '@desktop-client/spreadsheet'; -import { trackingBudget } from '@desktop-client/spreadsheet/bindings'; - export const useTrackingSheetValue = < FieldName extends SheetFields<'tracking-budget'>, >( diff --git a/packages/desktop-client/src/components/budget/tracking/TrackingBudgetContext.tsx b/packages/desktop-client/src/components/budget/tracking/TrackingBudgetContext.tsx index 54ec9eaf87..f2577108c8 100644 --- a/packages/desktop-client/src/components/budget/tracking/TrackingBudgetContext.tsx +++ b/packages/desktop-client/src/components/budget/tracking/TrackingBudgetContext.tsx @@ -1,7 +1,7 @@ import React, { createContext, useContext } from 'react'; import type { ReactNode } from 'react'; -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; type TrackingBudgetContextDefinition = { summaryCollapsed: boolean; diff --git a/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetMonthMenu.tsx b/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetMonthMenu.tsx index cc9386fbd6..2cfa8d0af9 100644 --- a/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetMonthMenu.tsx +++ b/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetMonthMenu.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next'; import { Menu } from '@actual-app/components/menu'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; type BudgetMonthMenuProps = Omit< ComponentPropsWithoutRef, diff --git a/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetSummary.tsx b/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetSummary.tsx index 84ff6ae31d..5e80c93bdb 100644 --- a/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetSummary.tsx +++ b/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetSummary.tsx @@ -13,21 +13,20 @@ import { SpaceBetween } from '@actual-app/components/space-between'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; import { css } from '@emotion/css'; -import * as monthUtils from 'loot-core/shared/months'; +import { useTrackingBudget } from '#components/budget/tracking/TrackingBudgetContext'; +import { NotesButton } from '#components/NotesButton'; +import { useLocale } from '#hooks/useLocale'; +import { SheetNameProvider } from '#hooks/useSheetName'; +import { useUndo } from '#hooks/useUndo'; import { BudgetMonthMenu } from './BudgetMonthMenu'; import { ExpenseTotal } from './ExpenseTotal'; import { IncomeTotal } from './IncomeTotal'; import { Saved } from './Saved'; -import { useTrackingBudget } from '@desktop-client/components/budget/tracking/TrackingBudgetContext'; -import { NotesButton } from '@desktop-client/components/NotesButton'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { SheetNameProvider } from '@desktop-client/hooks/useSheetName'; -import { useUndo } from '@desktop-client/hooks/useUndo'; - type BudgetSummaryProps = { month: string; }; diff --git a/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetTotal.tsx b/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetTotal.tsx index 0d69d281b7..2b9c6f0028 100644 --- a/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetTotal.tsx +++ b/packages/desktop-client/src/components/budget/tracking/budgetsummary/BudgetTotal.tsx @@ -8,8 +8,8 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { CellValue } from '@desktop-client/components/spreadsheet/CellValue'; -import type { Binding, SheetFields } from '@desktop-client/spreadsheet'; +import { CellValue } from '#components/spreadsheet/CellValue'; +import type { Binding, SheetFields } from '#spreadsheet'; type BudgetTotalProps< CurrentField extends SheetFields<'tracking-budget'>, diff --git a/packages/desktop-client/src/components/budget/tracking/budgetsummary/ExpenseProgress.tsx b/packages/desktop-client/src/components/budget/tracking/budgetsummary/ExpenseProgress.tsx index a668e6deae..56a65db9bc 100644 --- a/packages/desktop-client/src/components/budget/tracking/budgetsummary/ExpenseProgress.tsx +++ b/packages/desktop-client/src/components/budget/tracking/budgetsummary/ExpenseProgress.tsx @@ -2,12 +2,12 @@ import React from 'react'; import { theme } from '@actual-app/components/theme'; +import { useTrackingSheetValue } from '#components/budget/tracking/TrackingBudgetComponents'; +import type { Binding } from '#spreadsheet'; + import { fraction } from './fraction'; import { PieProgress } from './PieProgress'; -import { useTrackingSheetValue } from '@desktop-client/components/budget/tracking/TrackingBudgetComponents'; -import type { Binding } from '@desktop-client/spreadsheet'; - type ExpenseProgressProps = { current: Binding<'tracking-budget', 'total-spent'>; target: Binding<'tracking-budget', 'total-budgeted'>; diff --git a/packages/desktop-client/src/components/budget/tracking/budgetsummary/ExpenseTotal.tsx b/packages/desktop-client/src/components/budget/tracking/budgetsummary/ExpenseTotal.tsx index e4338866e4..1d1be56c6e 100644 --- a/packages/desktop-client/src/components/budget/tracking/budgetsummary/ExpenseTotal.tsx +++ b/packages/desktop-client/src/components/budget/tracking/budgetsummary/ExpenseTotal.tsx @@ -2,11 +2,11 @@ import React from 'react'; import type { CSSProperties } from 'react'; import { useTranslation } from 'react-i18next'; +import { trackingBudget } from '#spreadsheet/bindings'; + import { BudgetTotal } from './BudgetTotal'; import { ExpenseProgress } from './ExpenseProgress'; -import { trackingBudget } from '@desktop-client/spreadsheet/bindings'; - type ExpenseTotalProps = { style?: CSSProperties; }; diff --git a/packages/desktop-client/src/components/budget/tracking/budgetsummary/IncomeProgress.tsx b/packages/desktop-client/src/components/budget/tracking/budgetsummary/IncomeProgress.tsx index dd8a7e6e64..94ecd551fa 100644 --- a/packages/desktop-client/src/components/budget/tracking/budgetsummary/IncomeProgress.tsx +++ b/packages/desktop-client/src/components/budget/tracking/budgetsummary/IncomeProgress.tsx @@ -3,12 +3,12 @@ import type { ComponentProps } from 'react'; import { theme } from '@actual-app/components/theme'; +import type { CellValue } from '#components/spreadsheet/CellValue'; +import { useSheetValue } from '#hooks/useSheetValue'; + import { fraction } from './fraction'; import { PieProgress } from './PieProgress'; -import type { CellValue } from '@desktop-client/components/spreadsheet/CellValue'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; - type IncomeProgressProps = { current: ComponentProps['binding']; target: ComponentProps['binding']; diff --git a/packages/desktop-client/src/components/budget/tracking/budgetsummary/IncomeTotal.tsx b/packages/desktop-client/src/components/budget/tracking/budgetsummary/IncomeTotal.tsx index d21282a4b2..b4ff3072f7 100644 --- a/packages/desktop-client/src/components/budget/tracking/budgetsummary/IncomeTotal.tsx +++ b/packages/desktop-client/src/components/budget/tracking/budgetsummary/IncomeTotal.tsx @@ -2,11 +2,11 @@ import React from 'react'; import type { CSSProperties } from 'react'; import { useTranslation } from 'react-i18next'; +import { trackingBudget } from '#spreadsheet/bindings'; + import { BudgetTotal } from './BudgetTotal'; import { IncomeProgress } from './IncomeProgress'; -import { trackingBudget } from '@desktop-client/spreadsheet/bindings'; - type IncomeTotalProps = { style?: CSSProperties; }; diff --git a/packages/desktop-client/src/components/budget/tracking/budgetsummary/Saved.tsx b/packages/desktop-client/src/components/budget/tracking/budgetsummary/Saved.tsx index 53bb8006b9..0b82a46b8a 100644 --- a/packages/desktop-client/src/components/budget/tracking/budgetsummary/Saved.tsx +++ b/packages/desktop-client/src/components/budget/tracking/budgetsummary/Saved.tsx @@ -10,12 +10,12 @@ import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; import { css } from '@emotion/css'; -import { useTrackingSheetValue } from '@desktop-client/components/budget/tracking/TrackingBudgetComponents'; -import { makeAmountFullStyle } from '@desktop-client/components/budget/util'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { trackingBudget } from '@desktop-client/spreadsheet/bindings'; +import { useTrackingSheetValue } from '#components/budget/tracking/TrackingBudgetComponents'; +import { makeAmountFullStyle } from '#components/budget/util'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { useFormat } from '#hooks/useFormat'; +import { trackingBudget } from '#spreadsheet/bindings'; type SavedProps = { projected: boolean; diff --git a/packages/desktop-client/src/components/budget/util.ts b/packages/desktop-client/src/components/budget/util.ts index 8aa9471e41..b4ad1a95f2 100644 --- a/packages/desktop-client/src/components/budget/util.ts +++ b/packages/desktop-client/src/components/budget/util.ts @@ -2,23 +2,25 @@ import { styles } from '@actual-app/components/styles'; import type { CSSProperties } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; -import { t } from 'i18next'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { currencyToAmount, integerToCurrency } from 'loot-core/shared/util'; -import type { Handlers } from 'loot-core/types/handlers'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { + currencyToAmount, + integerToCurrency, +} from '@actual-app/core/shared/util'; +import type { Handlers } from '@actual-app/core/types/handlers'; import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +} from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; +import { t } from 'i18next'; + +import type { DropPosition } from '#components/sort'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; import { getValidMonthBounds } from './MonthsContext'; -import type { DropPosition } from '@desktop-client/components/sort'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; - export function addToBeBudgetedGroup(groups: CategoryGroupEntity[]) { return [ { diff --git a/packages/desktop-client/src/components/common/Link.tsx b/packages/desktop-client/src/components/common/Link.tsx index a947b786ea..aad94b0232 100644 --- a/packages/desktop-client/src/components/common/Link.tsx +++ b/packages/desktop-client/src/components/common/Link.tsx @@ -9,7 +9,7 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { css } from '@emotion/css'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +import { useNavigate } from '#hooks/useNavigate'; type TextLinkProps = { style?: CSSProperties; diff --git a/packages/desktop-client/src/components/common/Modal.tsx b/packages/desktop-client/src/components/common/Modal.tsx index 2b8922cdb4..9491abda14 100644 --- a/packages/desktop-client/src/components/common/Modal.tsx +++ b/packages/desktop-client/src/components/common/Modal.tsx @@ -28,7 +28,7 @@ import { View } from '@actual-app/components/view'; import { css } from '@emotion/css'; import { AutoTextSize } from 'auto-text-size'; -import { useModalState } from '@desktop-client/hooks/useModalState'; +import { useModalState } from '#hooks/useModalState'; export const MODAL_Z_INDEX = 3000; diff --git a/packages/desktop-client/src/components/filters/AppliedFilters.tsx b/packages/desktop-client/src/components/filters/AppliedFilters.tsx index b42e5023ff..ccabfdcd7d 100644 --- a/packages/desktop-client/src/components/filters/AppliedFilters.tsx +++ b/packages/desktop-client/src/components/filters/AppliedFilters.tsx @@ -2,8 +2,7 @@ import React from 'react'; import type { CSSProperties } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; - -import type { RuleConditionEntity } from 'loot-core/types/models'; +import type { RuleConditionEntity } from '@actual-app/core/types/models'; import { ConditionsOpMenu } from './ConditionsOpMenu'; import { FilterExpression } from './FilterExpression'; diff --git a/packages/desktop-client/src/components/filters/ConditionsOpMenu.tsx b/packages/desktop-client/src/components/filters/ConditionsOpMenu.tsx index 19a60beff9..e9da9db99a 100644 --- a/packages/desktop-client/src/components/filters/ConditionsOpMenu.tsx +++ b/packages/desktop-client/src/components/filters/ConditionsOpMenu.tsx @@ -3,10 +3,9 @@ import React from 'react'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { RuleConditionEntity } from '@actual-app/core/types/models'; -import type { RuleConditionEntity } from 'loot-core/types/models'; - -import { FieldSelect } from '@desktop-client/components/rules/RuleEditor'; +import { FieldSelect } from '#components/rules/RuleEditor'; export function ConditionsOpMenu({ conditionsOp, diff --git a/packages/desktop-client/src/components/filters/FilterExpression.tsx b/packages/desktop-client/src/components/filters/FilterExpression.tsx index adc7556519..9dfd0d410f 100644 --- a/packages/desktop-client/src/components/filters/FilterExpression.tsx +++ b/packages/desktop-client/src/components/filters/FilterExpression.tsx @@ -8,15 +8,14 @@ import { Popover } from '@actual-app/components/popover'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { friendlyOp, mapField } from '@actual-app/core/shared/rules'; +import type { RuleConditionEntity } from '@actual-app/core/types/models'; -import { friendlyOp, mapField } from 'loot-core/shared/rules'; -import type { RuleConditionEntity } from 'loot-core/types/models'; +import { Value } from '#components/rules/Value'; import { FilterEditor } from './FiltersMenu'; import { subfieldFromFilter } from './subfieldFromFilter'; -import { Value } from '@desktop-client/components/rules/Value'; - let isDatepickerClick = false; type FilterExpressionProps = { diff --git a/packages/desktop-client/src/components/filters/FiltersMenu.tsx b/packages/desktop-client/src/components/filters/FiltersMenu.tsx index 0cc771c009..7ee5ff45d6 100644 --- a/packages/desktop-client/src/components/filters/FiltersMenu.tsx +++ b/packages/desktop-client/src/components/filters/FiltersMenu.tsx @@ -15,14 +15,8 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; -import { - format as formatDate, - isValid as isDateValid, - parse as parseDate, -} from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import { getMonthYearFormat } from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import { getMonthYearFormat } from '@actual-app/core/shared/months'; import { deserializeField, FIELD_TYPES, @@ -30,10 +24,20 @@ import { getValidOps, mapField, unparse, -} from 'loot-core/shared/rules'; -import { titleFirst } from 'loot-core/shared/util'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { RuleConditionEntity } from 'loot-core/types/models'; +} from '@actual-app/core/shared/rules'; +import { titleFirst } from '@actual-app/core/shared/util'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { RuleConditionEntity } from '@actual-app/core/types/models'; +import { + format as formatDate, + isValid as isDateValid, + parse as parseDate, +} from 'date-fns'; + +import { GenericInput } from '#components/util/GenericInput'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useFormat } from '#hooks/useFormat'; +import { useTransactionFilters } from '#hooks/useTransactionFilters'; import { CompactFiltersButton } from './CompactFiltersButton'; import { FiltersButton } from './FiltersButton'; @@ -43,11 +47,6 @@ import { subfieldFromFilter } from './subfieldFromFilter'; import { subfieldToOptions } from './subfieldToOptions'; import { updateFilterReducer } from './updateFilterReducer'; -import { GenericInput } from '@desktop-client/components/util/GenericInput'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useTransactionFilters } from '@desktop-client/hooks/useTransactionFilters'; - type FilterReducerState = Pick< T, 'value' | 'op' | 'field' diff --git a/packages/desktop-client/src/components/filters/FiltersStack.tsx b/packages/desktop-client/src/components/filters/FiltersStack.tsx index 68ad2b7241..42596b34a2 100644 --- a/packages/desktop-client/src/components/filters/FiltersStack.tsx +++ b/packages/desktop-client/src/components/filters/FiltersStack.tsx @@ -2,11 +2,10 @@ import React from 'react'; import { SpaceBetween } from '@actual-app/components/space-between'; import { View } from '@actual-app/components/view'; - import type { RuleConditionEntity, TransactionFilterEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; import { AppliedFilters } from './AppliedFilters'; import { SavedFilterMenuButton } from './SavedFilterMenuButton'; diff --git a/packages/desktop-client/src/components/filters/NameFilter.tsx b/packages/desktop-client/src/components/filters/NameFilter.tsx index c09f440a37..a810d1a4c4 100644 --- a/packages/desktop-client/src/components/filters/NameFilter.tsx +++ b/packages/desktop-client/src/components/filters/NameFilter.tsx @@ -8,7 +8,7 @@ import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; +import { FormField, FormLabel } from '#components/forms'; export function NameFilter({ menuItem, diff --git a/packages/desktop-client/src/components/filters/OpButton.tsx b/packages/desktop-client/src/components/filters/OpButton.tsx index 1644e8e679..5ade69f64d 100644 --- a/packages/desktop-client/src/components/filters/OpButton.tsx +++ b/packages/desktop-client/src/components/filters/OpButton.tsx @@ -3,10 +3,9 @@ import type { CSSProperties } from 'react'; import { Button } from '@actual-app/components/button'; import { theme } from '@actual-app/components/theme'; +import { friendlyOp } from '@actual-app/core/shared/rules'; import { css } from '@emotion/css'; -import { friendlyOp } from 'loot-core/shared/rules'; - type OpButtonProps = { op: string; isSelected: boolean; diff --git a/packages/desktop-client/src/components/filters/PayeeFilter.tsx b/packages/desktop-client/src/components/filters/PayeeFilter.tsx index 8238ee29c5..82911be214 100644 --- a/packages/desktop-client/src/components/filters/PayeeFilter.tsx +++ b/packages/desktop-client/src/components/filters/PayeeFilter.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; -import type { PayeeEntity } from 'loot-core/types/models'; +import type { PayeeEntity } from '@actual-app/core/types/models'; -import { PayeeAutocomplete } from '@desktop-client/components/autocomplete/PayeeAutocomplete'; +import { PayeeAutocomplete } from '#components/autocomplete/PayeeAutocomplete'; type PayeeFilterValue = PayeeEntity['id'] | PayeeEntity['id'][]; diff --git a/packages/desktop-client/src/components/filters/SavedFilterMenuButton.tsx b/packages/desktop-client/src/components/filters/SavedFilterMenuButton.tsx index 1b91769369..fda77c3c82 100644 --- a/packages/desktop-client/src/components/filters/SavedFilterMenuButton.tsx +++ b/packages/desktop-client/src/components/filters/SavedFilterMenuButton.tsx @@ -6,12 +6,11 @@ import { SvgExpandArrow } from '@actual-app/components/icons/v0'; import { Popover } from '@actual-app/components/popover'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; - -import { send, sendCatch } from 'loot-core/platform/client/connection'; +import { send, sendCatch } from '@actual-app/core/platform/client/connection'; import type { RuleConditionEntity, TransactionFilterEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; import { FilterMenu } from './FilterMenu'; import { NameFilter } from './NameFilter'; diff --git a/packages/desktop-client/src/components/filters/subfieldFromFilter.ts b/packages/desktop-client/src/components/filters/subfieldFromFilter.ts index d68d4dbdc4..d2bd8bc7da 100644 --- a/packages/desktop-client/src/components/filters/subfieldFromFilter.ts +++ b/packages/desktop-client/src/components/filters/subfieldFromFilter.ts @@ -1,4 +1,4 @@ -import type { RuleConditionEntity } from 'loot-core/types/models'; +import type { RuleConditionEntity } from '@actual-app/core/types/models'; export function subfieldFromFilter({ field, diff --git a/packages/desktop-client/src/components/filters/subfieldToOptions.ts b/packages/desktop-client/src/components/filters/subfieldToOptions.ts index 5119544c43..56fb613266 100644 --- a/packages/desktop-client/src/components/filters/subfieldToOptions.ts +++ b/packages/desktop-client/src/components/filters/subfieldToOptions.ts @@ -1,4 +1,4 @@ -import type { RuleConditionEntity } from 'loot-core/types/models'; +import type { RuleConditionEntity } from '@actual-app/core/types/models'; export function subfieldToOptions(field: string, subfield: string) { let setOptions: RuleConditionEntity['options']; diff --git a/packages/desktop-client/src/components/filters/updateFilterReducer.ts b/packages/desktop-client/src/components/filters/updateFilterReducer.ts index 14652cbc1d..9a6a3a9c6b 100644 --- a/packages/desktop-client/src/components/filters/updateFilterReducer.ts +++ b/packages/desktop-client/src/components/filters/updateFilterReducer.ts @@ -1,5 +1,5 @@ -import { FIELD_TYPES, makeValue } from 'loot-core/shared/rules'; -import type { RuleConditionEntity } from 'loot-core/types/models'; +import { FIELD_TYPES, makeValue } from '@actual-app/core/shared/rules'; +import type { RuleConditionEntity } from '@actual-app/core/types/models'; export function updateFilterReducer( state: Pick & { value: T['value'] | null }, diff --git a/packages/desktop-client/src/components/formula/FormulaEditor.tsx b/packages/desktop-client/src/components/formula/FormulaEditor.tsx index c421a0c79f..ad8b712086 100644 --- a/packages/desktop-client/src/components/formula/FormulaEditor.tsx +++ b/packages/desktop-client/src/components/formula/FormulaEditor.tsx @@ -4,10 +4,10 @@ import { EditorView } from '@codemirror/view'; import CodeMirror, { EditorState } from '@uiw/react-codemirror'; import type { ReactCodeMirrorProps } from '@uiw/react-codemirror'; -import { excelFormulaExtension } from './codeMirror-excelLanguage'; +import { autocompleteTabAcceptHighest } from '#components/codemirror/autocompleteTabAccept'; +import { useTheme } from '#style/theme'; -import { autocompleteTabAcceptHighest } from '@desktop-client/components/codemirror/autocompleteTabAccept'; -import { useTheme } from '@desktop-client/style/theme'; +import { excelFormulaExtension } from './codeMirror-excelLanguage'; type FormulaMode = 'transaction' | 'query'; diff --git a/packages/desktop-client/src/components/formula/QueryManager.tsx b/packages/desktop-client/src/components/formula/QueryManager.tsx index 47748277a8..349d1ebd72 100644 --- a/packages/desktop-client/src/components/formula/QueryManager.tsx +++ b/packages/desktop-client/src/components/formula/QueryManager.tsx @@ -12,32 +12,34 @@ import { Select } from '@actual-app/components/select'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { + RuleConditionEntity, + TimeFrame, +} from '@actual-app/core/types/models'; import { parseISO } from 'date-fns'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { RuleConditionEntity, TimeFrame } from 'loot-core/types/models'; - -import { - normalizeQueryTimeFrameEnd, - normalizeQueryTimeFrameStart, -} from './queryTimeFrame'; - -import { AppliedFilters } from '@desktop-client/components/filters/AppliedFilters'; -import { FilterButton } from '@desktop-client/components/filters/FiltersMenu'; -import { getLiveRange } from '@desktop-client/components/reports/getLiveRange'; +import { AppliedFilters } from '#components/filters/AppliedFilters'; +import { FilterButton } from '#components/filters/FiltersMenu'; +import { getLiveRange } from '#components/reports/getLiveRange'; import { calculateTimeRange, getLatestRange, validateEnd, validateStart, -} from '@desktop-client/components/reports/reportRanges'; -import { fromDateRepr } from '@desktop-client/components/reports/util'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useRuleConditionFilters } from '@desktop-client/hooks/useRuleConditionFilters'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import type { AppDispatch } from '@desktop-client/redux/store'; +} from '#components/reports/reportRanges'; +import { fromDateRepr } from '#components/reports/util'; +import { useLocale } from '#hooks/useLocale'; +import { useRuleConditionFilters } from '#hooks/useRuleConditionFilters'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import type { AppDispatch } from '#redux/store'; + +import { + normalizeQueryTimeFrameEnd, + normalizeQueryTimeFrameStart, +} from './queryTimeFrame'; type QueryConfig = { conditions?: RuleConditionEntity[]; diff --git a/packages/desktop-client/src/components/formula/queryTimeFrame.ts b/packages/desktop-client/src/components/formula/queryTimeFrame.ts index 9089167d00..cade8fb21e 100644 --- a/packages/desktop-client/src/components/formula/queryTimeFrame.ts +++ b/packages/desktop-client/src/components/formula/queryTimeFrame.ts @@ -1,4 +1,4 @@ -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; function isMonthString(dateOrMonth: string) { // Month format: YYYY-MM diff --git a/packages/desktop-client/src/components/gocardless/GoCardlessLink.tsx b/packages/desktop-client/src/components/gocardless/GoCardlessLink.tsx index 6395a5ab98..6aca7ddddf 100644 --- a/packages/desktop-client/src/components/gocardless/GoCardlessLink.tsx +++ b/packages/desktop-client/src/components/gocardless/GoCardlessLink.tsx @@ -4,7 +4,7 @@ import { Trans, useTranslation } from 'react-i18next'; import { Paragraph } from '@actual-app/components/paragraph'; import { View } from '@actual-app/components/view'; -import { Modal, ModalHeader } from '@desktop-client/components/common/Modal'; +import { Modal, ModalHeader } from '#components/common/Modal'; export function GoCardlessLink() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/manager/BudgetFileSelection.tsx b/packages/desktop-client/src/components/manager/BudgetFileSelection.tsx index 93894c0b0c..c044026a9c 100644 --- a/packages/desktop-client/src/components/manager/BudgetFileSelection.tsx +++ b/packages/desktop-client/src/components/manager/BudgetFileSelection.tsx @@ -28,19 +28,18 @@ import { theme } from '@actual-app/components/theme'; import { tokens } from '@actual-app/components/tokens'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; -import { css } from '@emotion/css'; - import { isElectron, isNonProductionEnvironment, -} from 'loot-core/shared/environment'; +} from '@actual-app/core/shared/environment'; import type { File, LocalFile, RemoteFile, SyncableLocalFile, SyncedLocalFile, -} from 'loot-core/types/file'; +} from '@actual-app/core/types/file'; +import { css } from '@emotion/css'; import { closeAndDownloadBudget, @@ -49,14 +48,14 @@ import { downloadBudget, loadAllFiles, loadBudget, -} from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { useMultiuserEnabled } from '@desktop-client/components/ServerContext'; -import { useInitialMount } from '@desktop-client/hooks/useInitialMount'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { useSyncServerStatus } from '@desktop-client/hooks/useSyncServerStatus'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; -import { getUserData } from '@desktop-client/users/usersSlice'; +} from '#budgetfiles/budgetfilesSlice'; +import { useMultiuserEnabled } from '#components/ServerContext'; +import { useInitialMount } from '#hooks/useInitialMount'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { useSyncServerStatus } from '#hooks/useSyncServerStatus'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch, useSelector } from '#redux'; +import { getUserData } from '#users/usersSlice'; function getFileDescription(file: File, t: (key: string) => string) { if (file.state === 'unknown') { diff --git a/packages/desktop-client/src/components/manager/ConfigServer.tsx b/packages/desktop-client/src/components/manager/ConfigServer.tsx index f4cc0cf675..6a6d160555 100644 --- a/packages/desktop-client/src/components/manager/ConfigServer.tsx +++ b/packages/desktop-client/src/components/manager/ConfigServer.tsx @@ -8,27 +8,23 @@ import { Label } from '@actual-app/components/label'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { css } from '@emotion/css'; - import { isElectron, isNonProductionEnvironment, -} from 'loot-core/shared/environment'; +} from '@actual-app/core/shared/environment'; +import { css } from '@emotion/css'; + +import { createBudget } from '#budgetfiles/budgetfilesSlice'; +import { Link } from '#components/common/Link'; +import { useServerURL, useSetServerURL } from '#components/ServerContext'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { useNavigate } from '#hooks/useNavigate'; +import { saveGlobalPrefs } from '#prefs/prefsSlice'; +import { useDispatch } from '#redux'; +import { loggedIn, signOut } from '#users/usersSlice'; import { Title } from './subscribe/common'; -import { createBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { Link } from '@desktop-client/components/common/Link'; -import { - useServerURL, - useSetServerURL, -} from '@desktop-client/components/ServerContext'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { saveGlobalPrefs } from '@desktop-client/prefs/prefsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { loggedIn, signOut } from '@desktop-client/users/usersSlice'; - export function ElectronServerConfig({ onDoNotUseServer, onSetServerConfigView, diff --git a/packages/desktop-client/src/components/manager/ManagementApp.tsx b/packages/desktop-client/src/components/manager/ManagementApp.tsx index 3480830251..cc27afae12 100644 --- a/packages/desktop-client/src/components/manager/ManagementApp.tsx +++ b/packages/desktop-client/src/components/manager/ManagementApp.tsx @@ -8,6 +8,24 @@ import { theme } from '@actual-app/components/theme'; import { tokens } from '@actual-app/components/tokens'; import { View } from '@actual-app/components/view'; +import { setAppState } from '#app/appSlice'; +import { ProtectedRoute } from '#auth/ProtectedRoute'; +import { Permissions } from '#auth/types'; +import { + BackToFileListButton, + UserDirectoryPage, +} from '#components/admin/UserDirectory/UserDirectoryPage'; +import { AppBackground } from '#components/AppBackground'; +import { LoggedInUser } from '#components/LoggedInUser'; +import { Notifications } from '#components/Notifications'; +import { + useMultiuserEnabled, + useServerVersion, +} from '#components/ServerContext'; +import { useMetaThemeColor } from '#hooks/useMetaThemeColor'; +import { useDispatch, useSelector } from '#redux'; +import { loggedIn } from '#users/usersSlice'; + import { BudgetFileSelection } from './BudgetFileSelection'; import { ConfigServer } from './ConfigServer'; import { ServerURL } from './ServerURL'; @@ -18,24 +36,6 @@ import { Login } from './subscribe/Login'; import { OpenIdCallback } from './subscribe/OpenIdCallback'; import { WelcomeScreen } from './WelcomeScreen'; -import { setAppState } from '@desktop-client/app/appSlice'; -import { ProtectedRoute } from '@desktop-client/auth/ProtectedRoute'; -import { Permissions } from '@desktop-client/auth/types'; -import { - BackToFileListButton, - UserDirectoryPage, -} from '@desktop-client/components/admin/UserDirectory/UserDirectoryPage'; -import { AppBackground } from '@desktop-client/components/AppBackground'; -import { LoggedInUser } from '@desktop-client/components/LoggedInUser'; -import { Notifications } from '@desktop-client/components/Notifications'; -import { - useMultiuserEnabled, - useServerVersion, -} from '@desktop-client/components/ServerContext'; -import { useMetaThemeColor } from '@desktop-client/hooks/useMetaThemeColor'; -import { useDispatch, useSelector } from '@desktop-client/redux'; -import { loggedIn } from '@desktop-client/users/usersSlice'; - function Version() { const version = useServerVersion(); diff --git a/packages/desktop-client/src/components/manager/ServerURL.tsx b/packages/desktop-client/src/components/manager/ServerURL.tsx index e25ac69a47..acfe38ed9d 100644 --- a/packages/desktop-client/src/components/manager/ServerURL.tsx +++ b/packages/desktop-client/src/components/manager/ServerURL.tsx @@ -4,8 +4,8 @@ import { Trans } from 'react-i18next'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; -import { Link } from '@desktop-client/components/common/Link'; -import { useServerURL } from '@desktop-client/components/ServerContext'; +import { Link } from '#components/common/Link'; +import { useServerURL } from '#components/ServerContext'; export function ServerURL() { const url = useServerURL(); diff --git a/packages/desktop-client/src/components/manager/WelcomeScreen.tsx b/packages/desktop-client/src/components/manager/WelcomeScreen.tsx index 859dca6e67..91797c7394 100644 --- a/packages/desktop-client/src/components/manager/WelcomeScreen.tsx +++ b/packages/desktop-client/src/components/manager/WelcomeScreen.tsx @@ -8,10 +8,10 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { createBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { Link } from '@desktop-client/components/common/Link'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { createBudget } from '#budgetfiles/budgetfilesSlice'; +import { Link } from '#components/common/Link'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; export function WelcomeScreen() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx b/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx index cdf875120b..224c5e5591 100644 --- a/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx +++ b/packages/desktop-client/src/components/manager/subscribe/Bootstrap.tsx @@ -7,18 +7,17 @@ import { Paragraph } from '@actual-app/components/paragraph'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; -import { send } from 'loot-core/platform/client/connection'; +import { createBudget } from '#budgetfiles/budgetfilesSlice'; +import { Link } from '#components/common/Link'; +import { useRefreshLoginMethods } from '#components/ServerContext'; +import { useNavigate } from '#hooks/useNavigate'; +import { useDispatch } from '#redux'; import { Title, useBootstrapped } from './common'; import { ConfirmPasswordForm } from './ConfirmPasswordForm'; -import { createBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { Link } from '@desktop-client/components/common/Link'; -import { useRefreshLoginMethods } from '@desktop-client/components/ServerContext'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useDispatch } from '@desktop-client/redux'; - export function Bootstrap() { const { t } = useTranslation(); const dispatch = useDispatch(); diff --git a/packages/desktop-client/src/components/manager/subscribe/ChangePassword.tsx b/packages/desktop-client/src/components/manager/subscribe/ChangePassword.tsx index fd5c674088..d50292168e 100644 --- a/packages/desktop-client/src/components/manager/subscribe/ChangePassword.tsx +++ b/packages/desktop-client/src/components/manager/subscribe/ChangePassword.tsx @@ -6,14 +6,13 @@ import { Button } from '@actual-app/components/button'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; -import { send } from 'loot-core/platform/client/connection'; +import { useNavigate } from '#hooks/useNavigate'; import { Title } from './common'; import { ConfirmPasswordForm } from './ConfirmPasswordForm'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; - export function ChangePassword() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/manager/subscribe/Error.tsx b/packages/desktop-client/src/components/manager/subscribe/Error.tsx index 4b2541524c..407c2f0310 100644 --- a/packages/desktop-client/src/components/manager/subscribe/Error.tsx +++ b/packages/desktop-client/src/components/manager/subscribe/Error.tsx @@ -8,7 +8,7 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +import { useNavigate } from '#hooks/useNavigate'; function getErrorMessage(reason) { switch (reason) { diff --git a/packages/desktop-client/src/components/manager/subscribe/Login.tsx b/packages/desktop-client/src/components/manager/subscribe/Login.tsx index bd63070c53..64c517966e 100644 --- a/packages/desktop-client/src/components/manager/subscribe/Login.tsx +++ b/packages/desktop-client/src/components/manager/subscribe/Login.tsx @@ -14,22 +14,21 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { isElectron } from '@actual-app/core/shared/environment'; +import type { OpenIdConfig } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import { isElectron } from 'loot-core/shared/environment'; -import type { OpenIdConfig } from 'loot-core/types/models'; - -import { Title, useBootstrapped } from './common'; -import { OpenIdForm } from './OpenIdForm'; - -import { Link } from '@desktop-client/components/common/Link'; +import { Link } from '#components/common/Link'; import { useAvailableLoginMethods, useLoginMethod, -} from '@desktop-client/components/ServerContext'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useDispatch } from '@desktop-client/redux'; -import { loggedIn } from '@desktop-client/users/usersSlice'; +} from '#components/ServerContext'; +import { useNavigate } from '#hooks/useNavigate'; +import { useDispatch } from '#redux'; +import { loggedIn } from '#users/usersSlice'; + +import { Title, useBootstrapped } from './common'; +import { OpenIdForm } from './OpenIdForm'; function PasswordLogin({ setError, dispatch }) { const [password, setPassword] = useState(''); diff --git a/packages/desktop-client/src/components/manager/subscribe/OpenIdCallback.ts b/packages/desktop-client/src/components/manager/subscribe/OpenIdCallback.ts index d5059955a0..6fdd7571b1 100644 --- a/packages/desktop-client/src/components/manager/subscribe/OpenIdCallback.ts +++ b/packages/desktop-client/src/components/manager/subscribe/OpenIdCallback.ts @@ -1,9 +1,9 @@ import { useEffect } from 'react'; -import { send } from 'loot-core/platform/client/connection'; +import { send } from '@actual-app/core/platform/client/connection'; -import { useDispatch } from '@desktop-client/redux'; -import { loggedIn } from '@desktop-client/users/usersSlice'; +import { useDispatch } from '#redux'; +import { loggedIn } from '#users/usersSlice'; export function OpenIdCallback() { const dispatch = useDispatch(); diff --git a/packages/desktop-client/src/components/manager/subscribe/OpenIdForm.tsx b/packages/desktop-client/src/components/manager/subscribe/OpenIdForm.tsx index 4b881fa95c..21eb9835d5 100644 --- a/packages/desktop-client/src/components/manager/subscribe/OpenIdForm.tsx +++ b/packages/desktop-client/src/components/manager/subscribe/OpenIdForm.tsx @@ -14,12 +14,11 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { OpenIdConfig } from '@actual-app/core/types/models'; -import type { OpenIdConfig } from 'loot-core/types/models'; - -import { Link } from '@desktop-client/components/common/Link'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import { useServerURL } from '@desktop-client/components/ServerContext'; +import { Link } from '#components/common/Link'; +import { FormField, FormLabel } from '#components/forms'; +import { useServerURL } from '#components/ServerContext'; type OpenIdCallback = (config: OpenIdConfig) => Promise; diff --git a/packages/desktop-client/src/components/manager/subscribe/common.tsx b/packages/desktop-client/src/components/manager/subscribe/common.tsx index ee3ecae997..0b8ac051f4 100644 --- a/packages/desktop-client/src/components/manager/subscribe/common.tsx +++ b/packages/desktop-client/src/components/manager/subscribe/common.tsx @@ -3,16 +3,15 @@ import React, { useEffect, useState } from 'react'; import { useLocation } from 'react-router'; import { theme } from '@actual-app/components/theme'; - -import { send } from 'loot-core/platform/client/connection'; -import type { Handlers } from 'loot-core/types/handlers'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { Handlers } from '@actual-app/core/types/handlers'; import { useSetLoginMethods, useSetMultiuserEnabled, useSetServerURL, -} from '@desktop-client/components/ServerContext'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +} from '#components/ServerContext'; +import { useNavigate } from '#hooks/useNavigate'; // There are two URLs that dance with each other: `/login` and // `/bootstrap`. Both of these URLs check the state of the the server diff --git a/packages/desktop-client/src/components/mobile/ActionableGridListItem.tsx b/packages/desktop-client/src/components/mobile/ActionableGridListItem.tsx index ed22cfff17..fb8d93eb2c 100644 --- a/packages/desktop-client/src/components/mobile/ActionableGridListItem.tsx +++ b/packages/desktop-client/src/components/mobile/ActionableGridListItem.tsx @@ -7,10 +7,9 @@ import { animated, config, useSpring } from 'react-spring'; import { Button } from '@actual-app/components/button'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; +import type { WithRequired } from '@actual-app/core/types/util'; import { useDrag } from '@use-gesture/react'; -import type { WithRequired } from 'loot-core/types/util'; - type ActionableGridListItemProps = { actions?: ReactNode | ((params: { close: () => void }) => ReactNode); actionsBackgroundColor?: string; diff --git a/packages/desktop-client/src/components/mobile/MobileBackButton.tsx b/packages/desktop-client/src/components/mobile/MobileBackButton.tsx index 0724267922..f543149fec 100644 --- a/packages/desktop-client/src/components/mobile/MobileBackButton.tsx +++ b/packages/desktop-client/src/components/mobile/MobileBackButton.tsx @@ -7,7 +7,7 @@ import { SvgCheveronLeft } from '@actual-app/components/icons/v1'; import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +import { useNavigate } from '#hooks/useNavigate'; type MobileBackButtonProps = ComponentPropsWithoutRef; diff --git a/packages/desktop-client/src/components/mobile/MobileNavTabs.tsx b/packages/desktop-client/src/components/mobile/MobileNavTabs.tsx index 068cdeb842..bce73e1196 100644 --- a/packages/desktop-client/src/components/mobile/MobileNavTabs.tsx +++ b/packages/desktop-client/src/components/mobile/MobileNavTabs.tsx @@ -21,9 +21,9 @@ import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; import { useDrag } from '@use-gesture/react'; -import { useIsTestEnv } from '@desktop-client/hooks/useIsTestEnv'; -import { useScrollListener } from '@desktop-client/hooks/useScrollListener'; -import { useSyncServerStatus } from '@desktop-client/hooks/useSyncServerStatus'; +import { useIsTestEnv } from '#hooks/useIsTestEnv'; +import { useScrollListener } from '#hooks/useScrollListener'; +import { useSyncServerStatus } from '#hooks/useSyncServerStatus'; const COLUMN_COUNT = 3; const PILL_HEIGHT = 15; diff --git a/packages/desktop-client/src/components/mobile/accounts/AccountPage.tsx b/packages/desktop-client/src/components/mobile/accounts/AccountPage.tsx index a520901be3..ef9e1375f1 100644 --- a/packages/desktop-client/src/components/mobile/accounts/AccountPage.tsx +++ b/packages/desktop-client/src/components/mobile/accounts/AccountPage.tsx @@ -8,32 +8,28 @@ import type { CSSProperties } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { AccountEntity } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import type { AccountEntity } from 'loot-core/types/models'; +import { useReopenAccountMutation, useUpdateAccountMutation } from '#accounts'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { AddTransactionButton } from '#components/mobile/transactions/AddTransactionButton'; +import { MobilePageHeader, Page } from '#components/Page'; +import { useAccount } from '#hooks/useAccount'; +import { useFailedAccounts } from '#hooks/useFailedAccounts'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { + collapseModals, + openAccountCloseModal, + pushModal, +} from '#modals/modalsSlice'; +import { useDispatch, useSelector } from '#redux'; import { AccountTransactions } from './AccountTransactions'; import { AllAccountTransactions } from './AllAccountTransactions'; import { OffBudgetAccountTransactions } from './OffBudgetAccountTransactions'; import { OnBudgetAccountTransactions } from './OnBudgetAccountTransactions'; -import { - useReopenAccountMutation, - useUpdateAccountMutation, -} from '@desktop-client/accounts'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { AddTransactionButton } from '@desktop-client/components/mobile/transactions/AddTransactionButton'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { useAccount } from '@desktop-client/hooks/useAccount'; -import { useFailedAccounts } from '@desktop-client/hooks/useFailedAccounts'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { - collapseModals, - openAccountCloseModal, - pushModal, -} from '@desktop-client/modals/modalsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; - export function AccountPage() { const { t } = useTranslation(); const [_numberFormat] = useSyncedPref('numberFormat'); diff --git a/packages/desktop-client/src/components/mobile/accounts/AccountTransactions.tsx b/packages/desktop-client/src/components/mobile/accounts/AccountTransactions.tsx index 2df583bfab..63e13cda7c 100644 --- a/packages/desktop-client/src/components/mobile/accounts/AccountTransactions.tsx +++ b/packages/desktop-client/src/components/mobile/accounts/AccountTransactions.tsx @@ -1,31 +1,34 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { send } from 'loot-core/platform/client/connection'; -import type { Query } from 'loot-core/shared/query'; -import { isPreviewId } from 'loot-core/shared/transactions'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { AccountEntity, TransactionEntity } from 'loot-core/types/models'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { Query } from '@actual-app/core/shared/query'; +import { isPreviewId } from '@actual-app/core/shared/transactions'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { + AccountEntity, + TransactionEntity, +} from '@actual-app/core/types/models'; -import { useSyncAndDownloadMutation } from '@desktop-client/accounts'; -import { markAccountRead } from '@desktop-client/accounts/accountsSlice'; -import { TransactionListWithBalances } from '@desktop-client/components/mobile/transactions/TransactionListWithBalances'; -import { useAccountPreviewTransactions } from '@desktop-client/hooks/useAccountPreviewTransactions'; -import { SchedulesProvider } from '@desktop-client/hooks/useCachedSchedules'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { getSchedulesQuery } from '@desktop-client/hooks/useSchedules'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; +import { useSyncAndDownloadMutation } from '#accounts'; +import { markAccountRead } from '#accounts/accountsSlice'; +import { TransactionListWithBalances } from '#components/mobile/transactions/TransactionListWithBalances'; +import { useAccountPreviewTransactions } from '#hooks/useAccountPreviewTransactions'; +import { SchedulesProvider } from '#hooks/useCachedSchedules'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { getSchedulesQuery } from '#hooks/useSchedules'; +import { useSheetValue } from '#hooks/useSheetValue'; +import { useSyncedPref } from '#hooks/useSyncedPref'; import { calculateRunningBalancesTopDown, useTransactions, -} from '@desktop-client/hooks/useTransactions'; -import { useTransactionsSearch } from '@desktop-client/hooks/useTransactionsSearch'; -import { collapseModals, pushModal } from '@desktop-client/modals/modalsSlice'; -import * as queries from '@desktop-client/queries'; -import { useDispatch } from '@desktop-client/redux'; -import * as bindings from '@desktop-client/spreadsheet/bindings'; +} from '#hooks/useTransactions'; +import { useTransactionsSearch } from '#hooks/useTransactionsSearch'; +import { collapseModals, pushModal } from '#modals/modalsSlice'; +import * as queries from '#queries'; +import { useDispatch } from '#redux'; +import * as bindings from '#spreadsheet/bindings'; export function AccountTransactions({ account, diff --git a/packages/desktop-client/src/components/mobile/accounts/AccountsPage.tsx b/packages/desktop-client/src/components/mobile/accounts/AccountsPage.tsx index 0da3b60a85..75b172b087 100644 --- a/packages/desktop-client/src/components/mobile/accounts/AccountsPage.tsx +++ b/packages/desktop-client/src/components/mobile/accounts/AccountsPage.tsx @@ -20,31 +20,24 @@ import { Text } from '@actual-app/components/text'; import { TextOneLine } from '@actual-app/components/text-one-line'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { AccountEntity } from '@actual-app/core/types/models'; import { css } from '@emotion/css'; -import type { AccountEntity } from 'loot-core/types/models'; - -import { - useMoveAccountMutation, - useSyncAndDownloadMutation, -} from '@desktop-client/accounts'; -import { makeAmountFullStyle } from '@desktop-client/components/budget/util'; -import { MOBILE_NAV_HEIGHT } from '@desktop-client/components/mobile/MobileNavTabs'; -import { PullToRefresh } from '@desktop-client/components/mobile/PullToRefresh'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { - CellValue, - CellValueText, -} from '@desktop-client/components/spreadsheet/CellValue'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useFailedAccounts } from '@desktop-client/hooks/useFailedAccounts'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { replaceModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; -import type { Binding, SheetFields } from '@desktop-client/spreadsheet'; -import * as bindings from '@desktop-client/spreadsheet/bindings'; +import { useMoveAccountMutation, useSyncAndDownloadMutation } from '#accounts'; +import { makeAmountFullStyle } from '#components/budget/util'; +import { MOBILE_NAV_HEIGHT } from '#components/mobile/MobileNavTabs'; +import { PullToRefresh } from '#components/mobile/PullToRefresh'; +import { MobilePageHeader, Page } from '#components/Page'; +import { CellValue, CellValueText } from '#components/spreadsheet/CellValue'; +import { useAccounts } from '#hooks/useAccounts'; +import { useFailedAccounts } from '#hooks/useFailedAccounts'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { useNavigate } from '#hooks/useNavigate'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { replaceModal } from '#modals/modalsSlice'; +import { useDispatch, useSelector } from '#redux'; +import type { Binding, SheetFields } from '#spreadsheet'; +import * as bindings from '#spreadsheet/bindings'; const ROW_HEIGHT = 60; diff --git a/packages/desktop-client/src/components/mobile/accounts/AllAccountTransactions.tsx b/packages/desktop-client/src/components/mobile/accounts/AllAccountTransactions.tsx index 867d58895d..ac3b1e8bb1 100644 --- a/packages/desktop-client/src/components/mobile/accounts/AllAccountTransactions.tsx +++ b/packages/desktop-client/src/components/mobile/accounts/AllAccountTransactions.tsx @@ -1,23 +1,23 @@ import React, { useCallback, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { send } from 'loot-core/platform/client/connection'; -import type { Query } from 'loot-core/shared/query'; -import { isPreviewId } from 'loot-core/shared/transactions'; -import type { TransactionEntity } from 'loot-core/types/models'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { Query } from '@actual-app/core/shared/query'; +import { isPreviewId } from '@actual-app/core/shared/transactions'; +import type { TransactionEntity } from '@actual-app/core/types/models'; -import { TransactionListWithBalances } from '@desktop-client/components/mobile/transactions/TransactionListWithBalances'; -import { SchedulesProvider } from '@desktop-client/hooks/useCachedSchedules'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePreviewTransactions } from '@desktop-client/hooks/usePreviewTransactions'; -import { getSchedulesQuery } from '@desktop-client/hooks/useSchedules'; -import { useTransactions } from '@desktop-client/hooks/useTransactions'; -import { useTransactionsSearch } from '@desktop-client/hooks/useTransactionsSearch'; -import { collapseModals, pushModal } from '@desktop-client/modals/modalsSlice'; -import * as queries from '@desktop-client/queries'; -import { useDispatch } from '@desktop-client/redux'; -import * as bindings from '@desktop-client/spreadsheet/bindings'; +import { TransactionListWithBalances } from '#components/mobile/transactions/TransactionListWithBalances'; +import { SchedulesProvider } from '#hooks/useCachedSchedules'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePreviewTransactions } from '#hooks/usePreviewTransactions'; +import { getSchedulesQuery } from '#hooks/useSchedules'; +import { useTransactions } from '#hooks/useTransactions'; +import { useTransactionsSearch } from '#hooks/useTransactionsSearch'; +import { collapseModals, pushModal } from '#modals/modalsSlice'; +import * as queries from '#queries'; +import { useDispatch } from '#redux'; +import * as bindings from '#spreadsheet/bindings'; export function AllAccountTransactions() { const schedulesQuery = useMemo(() => getSchedulesQuery(), []); diff --git a/packages/desktop-client/src/components/mobile/accounts/OffBudgetAccountTransactions.tsx b/packages/desktop-client/src/components/mobile/accounts/OffBudgetAccountTransactions.tsx index a99614aea2..7bf23ba15f 100644 --- a/packages/desktop-client/src/components/mobile/accounts/OffBudgetAccountTransactions.tsx +++ b/packages/desktop-client/src/components/mobile/accounts/OffBudgetAccountTransactions.tsx @@ -1,24 +1,27 @@ import React, { useCallback, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { send } from 'loot-core/platform/client/connection'; -import type { Query } from 'loot-core/shared/query'; -import { isPreviewId } from 'loot-core/shared/transactions'; -import type { ScheduleEntity, TransactionEntity } from 'loot-core/types/models'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { Query } from '@actual-app/core/shared/query'; +import { isPreviewId } from '@actual-app/core/shared/transactions'; +import type { + ScheduleEntity, + TransactionEntity, +} from '@actual-app/core/types/models'; -import { TransactionListWithBalances } from '@desktop-client/components/mobile/transactions/TransactionListWithBalances'; -import { SchedulesProvider } from '@desktop-client/hooks/useCachedSchedules'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useOffBudgetAccounts } from '@desktop-client/hooks/useOffBudgetAccounts'; -import { usePreviewTransactions } from '@desktop-client/hooks/usePreviewTransactions'; -import { getSchedulesQuery } from '@desktop-client/hooks/useSchedules'; -import { useTransactions } from '@desktop-client/hooks/useTransactions'; -import { useTransactionsSearch } from '@desktop-client/hooks/useTransactionsSearch'; -import { collapseModals, pushModal } from '@desktop-client/modals/modalsSlice'; -import * as queries from '@desktop-client/queries'; -import { useDispatch } from '@desktop-client/redux'; -import * as bindings from '@desktop-client/spreadsheet/bindings'; +import { TransactionListWithBalances } from '#components/mobile/transactions/TransactionListWithBalances'; +import { SchedulesProvider } from '#hooks/useCachedSchedules'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { useOffBudgetAccounts } from '#hooks/useOffBudgetAccounts'; +import { usePreviewTransactions } from '#hooks/usePreviewTransactions'; +import { getSchedulesQuery } from '#hooks/useSchedules'; +import { useTransactions } from '#hooks/useTransactions'; +import { useTransactionsSearch } from '#hooks/useTransactionsSearch'; +import { collapseModals, pushModal } from '#modals/modalsSlice'; +import * as queries from '#queries'; +import { useDispatch } from '#redux'; +import * as bindings from '#spreadsheet/bindings'; export function OffBudgetAccountTransactions() { const schedulesQuery = useMemo(() => getSchedulesQuery('offbudget'), []); diff --git a/packages/desktop-client/src/components/mobile/accounts/OnBudgetAccountTransactions.tsx b/packages/desktop-client/src/components/mobile/accounts/OnBudgetAccountTransactions.tsx index 2c02850f47..5c1a8b7f9e 100644 --- a/packages/desktop-client/src/components/mobile/accounts/OnBudgetAccountTransactions.tsx +++ b/packages/desktop-client/src/components/mobile/accounts/OnBudgetAccountTransactions.tsx @@ -1,24 +1,27 @@ import React, { useCallback, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { send } from 'loot-core/platform/client/connection'; -import type { Query } from 'loot-core/shared/query'; -import { isPreviewId } from 'loot-core/shared/transactions'; -import type { ScheduleEntity, TransactionEntity } from 'loot-core/types/models'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { Query } from '@actual-app/core/shared/query'; +import { isPreviewId } from '@actual-app/core/shared/transactions'; +import type { + ScheduleEntity, + TransactionEntity, +} from '@actual-app/core/types/models'; -import { TransactionListWithBalances } from '@desktop-client/components/mobile/transactions/TransactionListWithBalances'; -import { SchedulesProvider } from '@desktop-client/hooks/useCachedSchedules'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useOnBudgetAccounts } from '@desktop-client/hooks/useOnBudgetAccounts'; -import { usePreviewTransactions } from '@desktop-client/hooks/usePreviewTransactions'; -import { getSchedulesQuery } from '@desktop-client/hooks/useSchedules'; -import { useTransactions } from '@desktop-client/hooks/useTransactions'; -import { useTransactionsSearch } from '@desktop-client/hooks/useTransactionsSearch'; -import { collapseModals, pushModal } from '@desktop-client/modals/modalsSlice'; -import * as queries from '@desktop-client/queries'; -import { useDispatch } from '@desktop-client/redux'; -import * as bindings from '@desktop-client/spreadsheet/bindings'; +import { TransactionListWithBalances } from '#components/mobile/transactions/TransactionListWithBalances'; +import { SchedulesProvider } from '#hooks/useCachedSchedules'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { useOnBudgetAccounts } from '#hooks/useOnBudgetAccounts'; +import { usePreviewTransactions } from '#hooks/usePreviewTransactions'; +import { getSchedulesQuery } from '#hooks/useSchedules'; +import { useTransactions } from '#hooks/useTransactions'; +import { useTransactionsSearch } from '#hooks/useTransactionsSearch'; +import { collapseModals, pushModal } from '#modals/modalsSlice'; +import * as queries from '#queries'; +import { useDispatch } from '#redux'; +import * as bindings from '#spreadsheet/bindings'; export function OnBudgetAccountTransactions() { const schedulesQuery = useMemo(() => getSchedulesQuery('onbudget'), []); diff --git a/packages/desktop-client/src/components/mobile/banksync/BankSyncAccountsList.tsx b/packages/desktop-client/src/components/mobile/banksync/BankSyncAccountsList.tsx index 3c897522c8..9556a6bb6c 100644 --- a/packages/desktop-client/src/components/mobile/banksync/BankSyncAccountsList.tsx +++ b/packages/desktop-client/src/components/mobile/banksync/BankSyncAccountsList.tsx @@ -3,13 +3,12 @@ import { Trans } from 'react-i18next'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { AccountEntity } from '@actual-app/core/types/models'; -import type { AccountEntity } from 'loot-core/types/models'; +import { MOBILE_NAV_HEIGHT } from '#components/mobile/MobileNavTabs'; import { BankSyncAccountsListItem } from './BankSyncAccountsListItem'; -import { MOBILE_NAV_HEIGHT } from '@desktop-client/components/mobile/MobileNavTabs'; - type SyncProviders = 'goCardless' | 'simpleFin' | 'pluggyai' | 'unlinked'; type BankSyncAccountsListProps = { diff --git a/packages/desktop-client/src/components/mobile/banksync/BankSyncAccountsListItem.tsx b/packages/desktop-client/src/components/mobile/banksync/BankSyncAccountsListItem.tsx index 46cf7d1ca5..eb5d3ac0dd 100644 --- a/packages/desktop-client/src/components/mobile/banksync/BankSyncAccountsListItem.tsx +++ b/packages/desktop-client/src/components/mobile/banksync/BankSyncAccountsListItem.tsx @@ -4,11 +4,10 @@ import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { tsToRelativeTime } from '@actual-app/core/shared/util'; +import type { AccountEntity } from '@actual-app/core/types/models'; -import { tsToRelativeTime } from 'loot-core/shared/util'; -import type { AccountEntity } from 'loot-core/types/models'; - -import { useLocale } from '@desktop-client/hooks/useLocale'; +import { useLocale } from '#hooks/useLocale'; type BankSyncAccountsListItemProps = { account: AccountEntity; diff --git a/packages/desktop-client/src/components/mobile/banksync/MobileBankSyncAccountEditPage.tsx b/packages/desktop-client/src/components/mobile/banksync/MobileBankSyncAccountEditPage.tsx index 074a2b9e35..07ca6c2173 100644 --- a/packages/desktop-client/src/components/mobile/banksync/MobileBankSyncAccountEditPage.tsx +++ b/packages/desktop-client/src/components/mobile/banksync/MobileBankSyncAccountEditPage.tsx @@ -8,16 +8,16 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { useUnlinkAccountMutation } from '@desktop-client/accounts'; -import { BankSyncCheckboxOptions } from '@desktop-client/components/banksync/BankSyncCheckboxOptions'; -import { FieldMapping } from '@desktop-client/components/banksync/FieldMapping'; -import { useBankSyncAccountSettings } from '@desktop-client/components/banksync/useBankSyncAccountSettings'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { useAccount } from '@desktop-client/hooks/useAccount'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { useUnlinkAccountMutation } from '#accounts'; +import { BankSyncCheckboxOptions } from '#components/banksync/BankSyncCheckboxOptions'; +import { FieldMapping } from '#components/banksync/FieldMapping'; +import { useBankSyncAccountSettings } from '#components/banksync/useBankSyncAccountSettings'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page } from '#components/Page'; +import { useAccount } from '#hooks/useAccount'; +import { useNavigate } from '#hooks/useNavigate'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; export function MobileBankSyncAccountEditPage() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/mobile/banksync/MobileBankSyncPage.tsx b/packages/desktop-client/src/components/mobile/banksync/MobileBankSyncPage.tsx index 748f4464aa..afe34faf56 100644 --- a/packages/desktop-client/src/components/mobile/banksync/MobileBankSyncPage.tsx +++ b/packages/desktop-client/src/components/mobile/banksync/MobileBankSyncPage.tsx @@ -5,18 +5,20 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { + AccountEntity, + BankSyncProviders, +} from '@actual-app/core/types/models'; -import type { AccountEntity, BankSyncProviders } from 'loot-core/types/models'; +import { Search } from '#components/common/Search'; +import { MobilePageHeader, Page } from '#components/Page'; +import { useAccounts } from '#hooks/useAccounts'; +import { useNavigate } from '#hooks/useNavigate'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; import { BankSyncAccountsList } from './BankSyncAccountsList'; -import { Search } from '@desktop-client/components/common/Search'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; - type SyncProviders = BankSyncProviders | 'unlinked'; const useSyncSourceReadable = () => { diff --git a/packages/desktop-client/src/components/mobile/budget/BalanceCell.tsx b/packages/desktop-client/src/components/mobile/budget/BalanceCell.tsx index c65660d42a..fb182484e3 100644 --- a/packages/desktop-client/src/components/mobile/budget/BalanceCell.tsx +++ b/packages/desktop-client/src/components/mobile/budget/BalanceCell.tsx @@ -7,23 +7,19 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { CategoryEntity } from '@actual-app/core/types/models'; import { css, cx } from '@emotion/css'; import { AutoTextSize } from 'auto-text-size'; -import type { CategoryEntity } from 'loot-core/types/models'; +import { BalanceWithCarryover } from '#components/budget/BalanceWithCarryover'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { useFormat } from '#hooks/useFormat'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import type { Binding } from '#spreadsheet'; +import { envelopeBudget, trackingBudget } from '#spreadsheet/bindings'; import { getColumnWidth, PILL_STYLE } from './BudgetTable'; -import { BalanceWithCarryover } from '@desktop-client/components/budget/BalanceWithCarryover'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import type { Binding } from '@desktop-client/spreadsheet'; -import { - envelopeBudget, - trackingBudget, -} from '@desktop-client/spreadsheet/bindings'; - type BalanceCellProps = { binding: Binding< 'envelope-budget' | 'tracking-budget', diff --git a/packages/desktop-client/src/components/mobile/budget/BudgetCell.tsx b/packages/desktop-client/src/components/mobile/budget/BudgetCell.tsx index f9537f1f7f..cc34de212b 100644 --- a/packages/desktop-client/src/components/mobile/budget/BudgetCell.tsx +++ b/packages/desktop-client/src/components/mobile/budget/BudgetCell.tsx @@ -5,26 +5,25 @@ import { useTranslation } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { CategoryEntity } from '@actual-app/core/types/models'; import { AutoTextSize } from 'auto-text-size'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { CategoryEntity } from 'loot-core/types/models'; +import { makeAmountGrey } from '#components/budget/util'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { CellValue } from '#components/spreadsheet/CellValue'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useNotes } from '#hooks/useNotes'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { useUndo } from '#hooks/useUndo'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; +import type { SheetFields } from '#spreadsheet'; import { getColumnWidth, PILL_STYLE } from './BudgetTable'; -import { makeAmountGrey } from '@desktop-client/components/budget/util'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { CellValue } from '@desktop-client/components/spreadsheet/CellValue'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNotes } from '@desktop-client/hooks/useNotes'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import type { SheetFields } from '@desktop-client/spreadsheet'; - type BudgetCellProps< SheetFieldName extends SheetFields<'envelope-budget' | 'tracking-budget'>, > = ComponentPropsWithoutRef< diff --git a/packages/desktop-client/src/components/mobile/budget/BudgetPage.tsx b/packages/desktop-client/src/components/mobile/budget/BudgetPage.tsx index d6578653fa..861b7042a4 100644 --- a/packages/desktop-client/src/components/mobile/budget/BudgetPage.tsx +++ b/packages/desktop-client/src/components/mobile/budget/BudgetPage.tsx @@ -26,15 +26,12 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { groupById } from '@actual-app/core/shared/util'; +import type { TransObjectLiteral } from '@actual-app/core/types/util'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { groupById } from 'loot-core/shared/util'; -import type { TransObjectLiteral } from 'loot-core/types/util'; - -import { BudgetTable, PILL_STYLE } from './BudgetTable'; - -import { sync } from '@desktop-client/app/appSlice'; +import { sync } from '#app/appSlice'; import { useBudgetActions, useCreateCategoryGroupMutation, @@ -43,28 +40,30 @@ import { useDeleteCategoryMutation, useSaveCategoryGroupMutation, useSaveCategoryMutation, -} from '@desktop-client/budget'; -import { closeBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { prewarmMonth } from '@desktop-client/components/budget/util'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { SyncRefresh } from '@desktop-client/components/SyncRefresh'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useOverspentCategories } from '@desktop-client/hooks/useOverspentCategories'; -import { SheetNameProvider } from '@desktop-client/hooks/useSheetName'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { useTransactions } from '@desktop-client/hooks/useTransactions'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { collapseModals, pushModal } from '@desktop-client/modals/modalsSlice'; -import { uncategorizedTransactions } from '@desktop-client/queries'; -import { useDispatch } from '@desktop-client/redux'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; +} from '#budget'; +import { closeBudget } from '#budgetfiles/budgetfilesSlice'; +import { prewarmMonth } from '#components/budget/util'; +import { FinancialText } from '#components/FinancialText'; +import { MobilePageHeader, Page } from '#components/Page'; +import { SyncRefresh } from '#components/SyncRefresh'; +import { useCategories } from '#hooks/useCategories'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { useNavigate } from '#hooks/useNavigate'; +import { useOverspentCategories } from '#hooks/useOverspentCategories'; +import { SheetNameProvider } from '#hooks/useSheetName'; +import { useSheetValue } from '#hooks/useSheetValue'; +import { useSpreadsheet } from '#hooks/useSpreadsheet'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { useTransactions } from '#hooks/useTransactions'; +import { useUndo } from '#hooks/useUndo'; +import { collapseModals, pushModal } from '#modals/modalsSlice'; +import { uncategorizedTransactions } from '#queries'; +import { useDispatch } from '#redux'; +import { envelopeBudget } from '#spreadsheet/bindings'; + +import { BudgetTable, PILL_STYLE } from './BudgetTable'; function isBudgetType(input?: string): input is 'envelope' | 'tracking' { return ['envelope', 'tracking'].includes(input); diff --git a/packages/desktop-client/src/components/mobile/budget/BudgetTable.tsx b/packages/desktop-client/src/components/mobile/budget/BudgetTable.tsx index 79b740e755..62269cea51 100644 --- a/packages/desktop-client/src/components/mobile/budget/BudgetTable.tsx +++ b/packages/desktop-client/src/components/mobile/budget/BudgetTable.tsx @@ -11,33 +11,29 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { AutoTextSize } from 'auto-text-size'; - -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { AutoTextSize } from 'auto-text-size'; + +import { MOBILE_NAV_HEIGHT } from '#components/mobile/MobileNavTabs'; +import { PullToRefresh } from '#components/mobile/PullToRefresh'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { CellValue } from '#components/spreadsheet/CellValue'; +import { SchedulesProvider } from '#hooks/useCachedSchedules'; +import { useFormat } from '#hooks/useFormat'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { useSheetValue } from '#hooks/useSheetValue'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import type { Binding } from '#spreadsheet'; +import { envelopeBudget, trackingBudget } from '#spreadsheet/bindings'; import { ExpenseGroupList } from './ExpenseGroupList'; import { IncomeGroup } from './IncomeGroup'; -import { MOBILE_NAV_HEIGHT } from '@desktop-client/components/mobile/MobileNavTabs'; -import { PullToRefresh } from '@desktop-client/components/mobile/PullToRefresh'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { CellValue } from '@desktop-client/components/spreadsheet/CellValue'; -import { SchedulesProvider } from '@desktop-client/hooks/useCachedSchedules'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import type { Binding } from '@desktop-client/spreadsheet'; -import { - envelopeBudget, - trackingBudget, -} from '@desktop-client/spreadsheet/bindings'; - export const ROW_HEIGHT = 50; export const PILL_STYLE: CSSProperties = { diff --git a/packages/desktop-client/src/components/mobile/budget/CategoryGroupActionMenu.tsx b/packages/desktop-client/src/components/mobile/budget/CategoryGroupActionMenu.tsx index b74e963e90..82bb893cdd 100644 --- a/packages/desktop-client/src/components/mobile/budget/CategoryGroupActionMenu.tsx +++ b/packages/desktop-client/src/components/mobile/budget/CategoryGroupActionMenu.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next'; import { Menu } from '@actual-app/components/menu'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; type CategoryGroupActionMenuProps = Omit< ComponentPropsWithoutRef, diff --git a/packages/desktop-client/src/components/mobile/budget/CategoryPage.tsx b/packages/desktop-client/src/components/mobile/budget/CategoryPage.tsx index ee099386ad..7d571bdfd5 100644 --- a/packages/desktop-client/src/components/mobile/budget/CategoryPage.tsx +++ b/packages/desktop-client/src/components/mobile/budget/CategoryPage.tsx @@ -4,19 +4,18 @@ import { useParams, useSearchParams } from 'react-router'; import { TextOneLine } from '@actual-app/components/text-one-line'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; -import * as monthUtils from 'loot-core/shared/months'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { AddTransactionButton } from '#components/mobile/transactions/AddTransactionButton'; +import { MobilePageHeader, Page } from '#components/Page'; +import { useCategory } from '#hooks/useCategory'; +import { useLocale } from '#hooks/useLocale'; +import { useSyncedPref } from '#hooks/useSyncedPref'; import { CategoryTransactions } from './CategoryTransactions'; import { UncategorizedTransactions } from './UncategorizedTransactions'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { AddTransactionButton } from '@desktop-client/components/mobile/transactions/AddTransactionButton'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { useCategory } from '@desktop-client/hooks/useCategory'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; - export function CategoryPage() { const locale = useLocale(); const [_numberFormat] = useSyncedPref('numberFormat'); diff --git a/packages/desktop-client/src/components/mobile/budget/CategoryTransactions.tsx b/packages/desktop-client/src/components/mobile/budget/CategoryTransactions.tsx index 14d77c68f7..fe0b512dbe 100644 --- a/packages/desktop-client/src/components/mobile/budget/CategoryTransactions.tsx +++ b/packages/desktop-client/src/components/mobile/budget/CategoryTransactions.tsx @@ -1,17 +1,20 @@ import React, { useCallback, useMemo, useState } from 'react'; -import { q } from 'loot-core/shared/query'; -import { isPreviewId } from 'loot-core/shared/transactions'; -import type { CategoryEntity, TransactionEntity } from 'loot-core/types/models'; +import { q } from '@actual-app/core/shared/query'; +import { isPreviewId } from '@actual-app/core/shared/transactions'; +import type { + CategoryEntity, + TransactionEntity, +} from '@actual-app/core/types/models'; -import { TransactionListWithBalances } from '@desktop-client/components/mobile/transactions/TransactionListWithBalances'; -import { SchedulesProvider } from '@desktop-client/hooks/useCachedSchedules'; -import { useCategoryPreviewTransactions } from '@desktop-client/hooks/useCategoryPreviewTransactions'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useTransactions } from '@desktop-client/hooks/useTransactions'; -import { useTransactionsSearch } from '@desktop-client/hooks/useTransactionsSearch'; -import * as bindings from '@desktop-client/spreadsheet/bindings'; +import { TransactionListWithBalances } from '#components/mobile/transactions/TransactionListWithBalances'; +import { SchedulesProvider } from '#hooks/useCachedSchedules'; +import { useCategoryPreviewTransactions } from '#hooks/useCategoryPreviewTransactions'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { useTransactions } from '#hooks/useTransactions'; +import { useTransactionsSearch } from '#hooks/useTransactionsSearch'; +import * as bindings from '#spreadsheet/bindings'; type CategoryTransactionsProps = { category: CategoryEntity; diff --git a/packages/desktop-client/src/components/mobile/budget/ExpenseCategoryList.tsx b/packages/desktop-client/src/components/mobile/budget/ExpenseCategoryList.tsx index 1ec7c1dd81..bf24824a1a 100644 --- a/packages/desktop-client/src/components/mobile/budget/ExpenseCategoryList.tsx +++ b/packages/desktop-client/src/components/mobile/budget/ExpenseCategoryList.tsx @@ -3,17 +3,16 @@ import { DropIndicator, GridList, useDragAndDrop } from 'react-aria-components'; import { useTranslation } from 'react-i18next'; import { theme } from '@actual-app/components/theme'; -import { css } from '@emotion/css'; - import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { css } from '@emotion/css'; + +import { useMoveCategoryMutation } from '#budget'; import { ExpenseCategoryListItem } from './ExpenseCategoryListItem'; -import { useMoveCategoryMutation } from '@desktop-client/budget'; - type ExpenseCategoryListProps = { categoryGroup: CategoryGroupEntity; categories: CategoryEntity[]; diff --git a/packages/desktop-client/src/components/mobile/budget/ExpenseCategoryListItem.tsx b/packages/desktop-client/src/components/mobile/budget/ExpenseCategoryListItem.tsx index f9fffc87f1..696f2839b7 100644 --- a/packages/desktop-client/src/components/mobile/budget/ExpenseCategoryListItem.tsx +++ b/packages/desktop-client/src/components/mobile/budget/ExpenseCategoryListItem.tsx @@ -10,29 +10,25 @@ import type { CSSProperties } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { BudgetType } from '@actual-app/core/server/prefs'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { CategoryEntity } from '@actual-app/core/types/models'; -import type { BudgetType } from 'loot-core/server/prefs'; -import * as monthUtils from 'loot-core/shared/months'; -import type { CategoryEntity } from 'loot-core/types/models'; +import { useCategoriesById } from '#hooks/useCategories'; +import { useFormat } from '#hooks/useFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { useSheetValue } from '#hooks/useSheetValue'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { useUndo } from '#hooks/useUndo'; +import { collapseModals, pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; +import { envelopeBudget, trackingBudget } from '#spreadsheet/bindings'; import { BalanceCell } from './BalanceCell'; import { BudgetCell } from './BudgetCell'; import { getColumnWidth, ROW_HEIGHT } from './BudgetTable'; import { SpentCell } from './SpentCell'; -import { useCategoriesById } from '@desktop-client/hooks/useCategories'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { collapseModals, pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { - envelopeBudget, - trackingBudget, -} from '@desktop-client/spreadsheet/bindings'; - type ExpenseCategoryNameProps = { category: CategoryEntity; onEditCategory: (id: CategoryEntity['id']) => void; diff --git a/packages/desktop-client/src/components/mobile/budget/ExpenseGroupList.tsx b/packages/desktop-client/src/components/mobile/budget/ExpenseGroupList.tsx index 94eb8ceccd..b4d0b07cf4 100644 --- a/packages/desktop-client/src/components/mobile/budget/ExpenseGroupList.tsx +++ b/packages/desktop-client/src/components/mobile/budget/ExpenseGroupList.tsx @@ -3,20 +3,19 @@ import { DropIndicator, GridList, useDragAndDrop } from 'react-aria-components'; import { useTranslation } from 'react-i18next'; import { theme } from '@actual-app/components/theme'; -import { css } from '@emotion/css'; - import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { css } from '@emotion/css'; + +import { useMoveCategoryGroupMutation } from '#budget'; import { ExpenseGroupHeader, ExpenseGroupListItem, } from './ExpenseGroupListItem'; -import { useMoveCategoryGroupMutation } from '@desktop-client/budget'; - type ExpenseGroupListProps = { categoryGroups: CategoryGroupEntity[]; show3Columns: boolean; diff --git a/packages/desktop-client/src/components/mobile/budget/ExpenseGroupListItem.tsx b/packages/desktop-client/src/components/mobile/budget/ExpenseGroupListItem.tsx index 74f275dc5d..0d525c54e9 100644 --- a/packages/desktop-client/src/components/mobile/budget/ExpenseGroupListItem.tsx +++ b/packages/desktop-client/src/components/mobile/budget/ExpenseGroupListItem.tsx @@ -11,27 +11,23 @@ import type { CSSProperties } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { css } from '@emotion/css'; -import { AutoTextSize } from 'auto-text-size'; - -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { css } from '@emotion/css'; +import { AutoTextSize } from 'auto-text-size'; + +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { CellValue } from '#components/spreadsheet/CellValue'; +import { useFormat } from '#hooks/useFormat'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { envelopeBudget, trackingBudget } from '#spreadsheet/bindings'; import { getColumnWidth, ROW_HEIGHT } from './BudgetTable'; import { ExpenseCategoryList } from './ExpenseCategoryList'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { CellValue } from '@desktop-client/components/spreadsheet/CellValue'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { - envelopeBudget, - trackingBudget, -} from '@desktop-client/spreadsheet/bindings'; - type ExpenseGroupListItemProps = ComponentPropsWithoutRef< typeof GridListItem > & { diff --git a/packages/desktop-client/src/components/mobile/budget/IncomeCategoryList.tsx b/packages/desktop-client/src/components/mobile/budget/IncomeCategoryList.tsx index 4143a1f678..a3e4143db7 100644 --- a/packages/desktop-client/src/components/mobile/budget/IncomeCategoryList.tsx +++ b/packages/desktop-client/src/components/mobile/budget/IncomeCategoryList.tsx @@ -3,14 +3,13 @@ import { DropIndicator, GridList, useDragAndDrop } from 'react-aria-components'; import { useTranslation } from 'react-i18next'; import { theme } from '@actual-app/components/theme'; +import type { CategoryEntity } from '@actual-app/core/types/models'; import { css } from '@emotion/css'; -import type { CategoryEntity } from 'loot-core/types/models'; +import { useMoveCategoryMutation } from '#budget'; import { IncomeCategoryListItem } from './IncomeCategoryListItem'; -import { useMoveCategoryMutation } from '@desktop-client/budget'; - type IncomeCategoryListProps = { categories: CategoryEntity[]; month: string; diff --git a/packages/desktop-client/src/components/mobile/budget/IncomeCategoryListItem.tsx b/packages/desktop-client/src/components/mobile/budget/IncomeCategoryListItem.tsx index b328495924..578018bccc 100644 --- a/packages/desktop-client/src/components/mobile/budget/IncomeCategoryListItem.tsx +++ b/packages/desktop-client/src/components/mobile/budget/IncomeCategoryListItem.tsx @@ -9,23 +9,19 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { CategoryEntity } from '@actual-app/core/types/models'; -import * as monthUtils from 'loot-core/shared/months'; -import type { CategoryEntity } from 'loot-core/types/models'; +import { useNavigate } from '#hooks/useNavigate'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { collapseModals, pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; +import { envelopeBudget, trackingBudget } from '#spreadsheet/bindings'; import { BalanceCell } from './BalanceCell'; import { BudgetCell } from './BudgetCell'; import { getColumnWidth, ROW_HEIGHT } from './BudgetTable'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { collapseModals, pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { - envelopeBudget, - trackingBudget, -} from '@desktop-client/spreadsheet/bindings'; - type IncomeCategoryNameProps = { category: CategoryEntity; onEdit: (id: CategoryEntity['id']) => void; diff --git a/packages/desktop-client/src/components/mobile/budget/IncomeGroup.tsx b/packages/desktop-client/src/components/mobile/budget/IncomeGroup.tsx index b46ce395f6..c936a3cf42 100644 --- a/packages/desktop-client/src/components/mobile/budget/IncomeGroup.tsx +++ b/packages/desktop-client/src/components/mobile/budget/IncomeGroup.tsx @@ -11,24 +11,20 @@ import type { CSSProperties } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { CategoryGroupEntity } from '@actual-app/core/types/models'; import { css } from '@emotion/css'; import { AutoTextSize } from 'auto-text-size'; -import * as monthUtils from 'loot-core/shared/months'; -import type { CategoryGroupEntity } from 'loot-core/types/models'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { CellValue } from '#components/spreadsheet/CellValue'; +import { useFormat } from '#hooks/useFormat'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { envelopeBudget, trackingBudget } from '#spreadsheet/bindings'; import { getColumnWidth, ROW_HEIGHT } from './BudgetTable'; import { IncomeCategoryList } from './IncomeCategoryList'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { CellValue } from '@desktop-client/components/spreadsheet/CellValue'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { - envelopeBudget, - trackingBudget, -} from '@desktop-client/spreadsheet/bindings'; - type IncomeGroupProps = { categoryGroup: CategoryGroupEntity; month: string; diff --git a/packages/desktop-client/src/components/mobile/budget/SpentCell.tsx b/packages/desktop-client/src/components/mobile/budget/SpentCell.tsx index 1cd8005638..da35551691 100644 --- a/packages/desktop-client/src/components/mobile/budget/SpentCell.tsx +++ b/packages/desktop-client/src/components/mobile/budget/SpentCell.tsx @@ -9,19 +9,18 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { CategoryEntity } from '@actual-app/core/types/models'; import { AutoTextSize } from 'auto-text-size'; -import type { CategoryEntity } from 'loot-core/types/models'; +import { makeAmountGrey } from '#components/budget/util'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { CellValue } from '#components/spreadsheet/CellValue'; +import { useCategoryScheduleGoalTemplateIndicator } from '#hooks/useCategoryScheduleGoalTemplateIndicator'; +import { useFormat } from '#hooks/useFormat'; +import type { Binding } from '#spreadsheet'; import { getColumnWidth, PILL_STYLE } from './BudgetTable'; -import { makeAmountGrey } from '@desktop-client/components/budget/util'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { CellValue } from '@desktop-client/components/spreadsheet/CellValue'; -import { useCategoryScheduleGoalTemplateIndicator } from '@desktop-client/hooks/useCategoryScheduleGoalTemplateIndicator'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { Binding } from '@desktop-client/spreadsheet'; - type SpentCellProps = { binding: Binding<'envelope-budget' | 'tracking-budget', 'sum-amount'>; category: CategoryEntity; diff --git a/packages/desktop-client/src/components/mobile/budget/UncategorizedTransactions.tsx b/packages/desktop-client/src/components/mobile/budget/UncategorizedTransactions.tsx index c628ab5c7e..8f67b4d6f7 100644 --- a/packages/desktop-client/src/components/mobile/budget/UncategorizedTransactions.tsx +++ b/packages/desktop-client/src/components/mobile/budget/UncategorizedTransactions.tsx @@ -1,16 +1,16 @@ import React, { useCallback, useState } from 'react'; -import { isPreviewId } from 'loot-core/shared/transactions'; -import type { TransactionEntity } from 'loot-core/types/models'; +import { isPreviewId } from '@actual-app/core/shared/transactions'; +import type { TransactionEntity } from '@actual-app/core/types/models'; -import { TransactionListWithBalances } from '@desktop-client/components/mobile/transactions/TransactionListWithBalances'; -import { SchedulesProvider } from '@desktop-client/hooks/useCachedSchedules'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useTransactions } from '@desktop-client/hooks/useTransactions'; -import { useTransactionsSearch } from '@desktop-client/hooks/useTransactionsSearch'; -import { uncategorizedTransactions } from '@desktop-client/queries'; -import * as bindings from '@desktop-client/spreadsheet/bindings'; +import { TransactionListWithBalances } from '#components/mobile/transactions/TransactionListWithBalances'; +import { SchedulesProvider } from '#hooks/useCachedSchedules'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { useTransactions } from '#hooks/useTransactions'; +import { useTransactionsSearch } from '#hooks/useTransactionsSearch'; +import { uncategorizedTransactions } from '#queries'; +import * as bindings from '#spreadsheet/bindings'; export function UncategorizedTransactions() { const navigate = useNavigate(); diff --git a/packages/desktop-client/src/components/mobile/payees/MobilePayeeEditPage.tsx b/packages/desktop-client/src/components/mobile/payees/MobilePayeeEditPage.tsx index 9c83e38240..2cf7caa256 100644 --- a/packages/desktop-client/src/components/mobile/payees/MobilePayeeEditPage.tsx +++ b/packages/desktop-client/src/components/mobile/payees/MobilePayeeEditPage.tsx @@ -7,18 +7,17 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { PayeeEntity } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import type { PayeeEntity } from 'loot-core/types/models'; - -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { InputField } from '@desktop-client/components/mobile/MobileForms'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { InputField } from '#components/mobile/MobileForms'; +import { MobilePageHeader, Page } from '#components/Page'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePayees } from '#hooks/usePayees'; +import { useUndo } from '#hooks/useUndo'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; export function MobilePayeeEditPage() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/mobile/payees/MobilePayeesPage.test.tsx b/packages/desktop-client/src/components/mobile/payees/MobilePayeesPage.test.tsx index bb81036dc1..3626ae2d8a 100644 --- a/packages/desktop-client/src/components/mobile/payees/MobilePayeesPage.test.tsx +++ b/packages/desktop-client/src/components/mobile/payees/MobilePayeesPage.test.tsx @@ -1,20 +1,19 @@ import React from 'react'; +import type { PayeeEntity } from '@actual-app/core/types/models'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import type { PayeeEntity } from 'loot-core/types/models'; +import { useNavigate } from '#hooks/useNavigate'; +import { createTestQueryClient, TestProviders } from '#mocks'; +import { payeeQueries } from '#payees'; import { MobilePayeesPage } from './MobilePayeesPage'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { createTestQueryClient, TestProviders } from '@desktop-client/mocks'; -import { payeeQueries } from '@desktop-client/payees'; - vi.mock('@use-gesture/react', () => ({ useDrag: vi.fn().mockReturnValue(() => ({})), })); -vi.mock('@desktop-client/hooks/useNavigate'); +vi.mock('#hooks/useNavigate'); const mockPayees: PayeeEntity[] = [ { diff --git a/packages/desktop-client/src/components/mobile/payees/MobilePayeesPage.tsx b/packages/desktop-client/src/components/mobile/payees/MobilePayeesPage.tsx index f9c575bc6b..20b9da69a1 100644 --- a/packages/desktop-client/src/components/mobile/payees/MobilePayeesPage.tsx +++ b/packages/desktop-client/src/components/mobile/payees/MobilePayeesPage.tsx @@ -4,22 +4,21 @@ import { useTranslation } from 'react-i18next'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { getNormalisedString } from '@actual-app/core/shared/normalisation'; +import type { PayeeEntity, RuleEntity } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import { getNormalisedString } from 'loot-core/shared/normalisation'; -import type { PayeeEntity, RuleEntity } from 'loot-core/types/models'; +import { Search } from '#components/common/Search'; +import { MobilePageHeader, Page } from '#components/Page'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePayeeRuleCounts } from '#hooks/usePayeeRuleCounts'; +import { usePayees } from '#hooks/usePayees'; +import { useUndo } from '#hooks/useUndo'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; import { PayeesList } from './PayeesList'; -import { Search } from '@desktop-client/components/common/Search'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePayeeRuleCounts } from '@desktop-client/hooks/usePayeeRuleCounts'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; - export function MobilePayeesPage() { const { t } = useTranslation(); const dispatch = useDispatch(); diff --git a/packages/desktop-client/src/components/mobile/payees/PayeesList.tsx b/packages/desktop-client/src/components/mobile/payees/PayeesList.tsx index 3d758d164a..06ba52044f 100644 --- a/packages/desktop-client/src/components/mobile/payees/PayeesList.tsx +++ b/packages/desktop-client/src/components/mobile/payees/PayeesList.tsx @@ -5,13 +5,12 @@ import { AnimatedLoading } from '@actual-app/components/icons/AnimatedLoading'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { PayeeEntity } from '@actual-app/core/types/models'; -import type { PayeeEntity } from 'loot-core/types/models'; +import { MOBILE_NAV_HEIGHT } from '#components/mobile/MobileNavTabs'; import { PayeesListItem } from './PayeesListItem'; -import { MOBILE_NAV_HEIGHT } from '@desktop-client/components/mobile/MobileNavTabs'; - type PayeesListProps = { payees: PayeeEntity[]; ruleCounts: Map; diff --git a/packages/desktop-client/src/components/mobile/payees/PayeesListItem.tsx b/packages/desktop-client/src/components/mobile/payees/PayeesListItem.tsx index 7a4668c338..dbc6ae35f5 100644 --- a/packages/desktop-client/src/components/mobile/payees/PayeesListItem.tsx +++ b/packages/desktop-client/src/components/mobile/payees/PayeesListItem.tsx @@ -7,12 +7,11 @@ import { SvgBookmark } from '@actual-app/components/icons/v1'; import { SpaceBetween } from '@actual-app/components/space-between'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { PayeeEntity } from '@actual-app/core/types/models'; +import type { WithRequired } from '@actual-app/core/types/util'; -import type { PayeeEntity } from 'loot-core/types/models'; -import type { WithRequired } from 'loot-core/types/util'; - -import { ActionableGridListItem } from '@desktop-client/components/mobile/ActionableGridListItem'; -import { PayeeRuleCountLabel } from '@desktop-client/components/payees/PayeeRuleCountLabel'; +import { ActionableGridListItem } from '#components/mobile/ActionableGridListItem'; +import { PayeeRuleCountLabel } from '#components/payees/PayeeRuleCountLabel'; type PayeesListItemProps = { ruleCount: number; diff --git a/packages/desktop-client/src/components/mobile/rules/AddRuleButton.tsx b/packages/desktop-client/src/components/mobile/rules/AddRuleButton.tsx index fbab6199ae..0d21181d53 100644 --- a/packages/desktop-client/src/components/mobile/rules/AddRuleButton.tsx +++ b/packages/desktop-client/src/components/mobile/rules/AddRuleButton.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { SvgAdd } from '@actual-app/components/icons/v1'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +import { useNavigate } from '#hooks/useNavigate'; export function AddRuleButton() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/mobile/rules/MobileRuleEditPage.tsx b/packages/desktop-client/src/components/mobile/rules/MobileRuleEditPage.tsx index 2e2aaa51df..306dafbd9b 100644 --- a/packages/desktop-client/src/components/mobile/rules/MobileRuleEditPage.tsx +++ b/packages/desktop-client/src/components/mobile/rules/MobileRuleEditPage.tsx @@ -5,20 +5,19 @@ import { useLocation, useParams } from 'react-router'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { q } from '@actual-app/core/shared/query'; +import type { NewRuleEntity, RuleEntity } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import { q } from 'loot-core/shared/query'; -import type { NewRuleEntity, RuleEntity } from 'loot-core/types/models'; - -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { RuleEditor } from '@desktop-client/components/rules/RuleEditor'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page } from '#components/Page'; +import { RuleEditor } from '#components/rules/RuleEditor'; +import { useNavigate } from '#hooks/useNavigate'; +import { useSchedules } from '#hooks/useSchedules'; +import { useUndo } from '#hooks/useUndo'; +import { pushModal } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; export function MobileRuleEditPage() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/mobile/rules/MobileRulesPage.tsx b/packages/desktop-client/src/components/mobile/rules/MobileRulesPage.tsx index 58ed7322d2..3fbae809a9 100644 --- a/packages/desktop-client/src/components/mobile/rules/MobileRulesPage.tsx +++ b/packages/desktop-client/src/components/mobile/rules/MobileRulesPage.tsx @@ -4,29 +4,28 @@ import { useTranslation } from 'react-i18next'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { listen, send } from '@actual-app/core/platform/client/connection'; +import * as undo from '@actual-app/core/platform/client/undo'; +import { getNormalisedString } from '@actual-app/core/shared/normalisation'; +import { q } from '@actual-app/core/shared/query'; +import type { RuleEntity } from '@actual-app/core/types/models'; -import { listen, send } from 'loot-core/platform/client/connection'; -import * as undo from 'loot-core/platform/client/undo'; -import { getNormalisedString } from 'loot-core/shared/normalisation'; -import { q } from 'loot-core/shared/query'; -import type { RuleEntity } from 'loot-core/types/models'; +import { Search } from '#components/common/Search'; +import { ruleToString } from '#components/ManageRules'; +import { MobilePageHeader, Page } from '#components/Page'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePayees } from '#hooks/usePayees'; +import { useSchedules } from '#hooks/useSchedules'; +import { useUndo } from '#hooks/useUndo'; +import { useUrlParam } from '#hooks/useUrlParam'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; import { AddRuleButton } from './AddRuleButton'; import { RulesList } from './RulesList'; -import { Search } from '@desktop-client/components/common/Search'; -import { ruleToString } from '@desktop-client/components/ManageRules'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { useUrlParam } from '@desktop-client/hooks/useUrlParam'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; - export function MobileRulesPage() { const { t } = useTranslation(); const navigate = useNavigate(); diff --git a/packages/desktop-client/src/components/mobile/rules/RulesList.tsx b/packages/desktop-client/src/components/mobile/rules/RulesList.tsx index 90918fb241..5e71fc4fea 100644 --- a/packages/desktop-client/src/components/mobile/rules/RulesList.tsx +++ b/packages/desktop-client/src/components/mobile/rules/RulesList.tsx @@ -5,13 +5,12 @@ import { AnimatedLoading } from '@actual-app/components/icons/AnimatedLoading'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { RuleEntity } from '@actual-app/core/types/models'; -import type { RuleEntity } from 'loot-core/types/models'; +import { MOBILE_NAV_HEIGHT } from '#components/mobile/MobileNavTabs'; import { RulesListItem } from './RulesListItem'; -import { MOBILE_NAV_HEIGHT } from '@desktop-client/components/mobile/MobileNavTabs'; - type RulesListProps = { rules: RuleEntity[]; isLoading: boolean; diff --git a/packages/desktop-client/src/components/mobile/rules/RulesListItem.tsx b/packages/desktop-client/src/components/mobile/rules/RulesListItem.tsx index 541018e213..7c830447b8 100644 --- a/packages/desktop-client/src/components/mobile/rules/RulesListItem.tsx +++ b/packages/desktop-client/src/components/mobile/rules/RulesListItem.tsx @@ -7,14 +7,13 @@ import { SpaceBetween } from '@actual-app/components/space-between'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { RuleEntity } from '@actual-app/core/types/models'; +import type { WithRequired } from '@actual-app/core/types/util'; -import type { RuleEntity } from 'loot-core/types/models'; -import type { WithRequired } from 'loot-core/types/util'; - -import { ActionableGridListItem } from '@desktop-client/components/mobile/ActionableGridListItem'; -import { ActionExpression } from '@desktop-client/components/rules/ActionExpression'; -import { ConditionExpression } from '@desktop-client/components/rules/ConditionExpression'; -import { groupActionsBySplitIndex } from '@desktop-client/util/ruleUtils'; +import { ActionableGridListItem } from '#components/mobile/ActionableGridListItem'; +import { ActionExpression } from '#components/rules/ActionExpression'; +import { ConditionExpression } from '#components/rules/ConditionExpression'; +import { groupActionsBySplitIndex } from '#util/ruleUtils'; type RulesListItemProps = { onDelete: () => void; diff --git a/packages/desktop-client/src/components/mobile/schedules/AddScheduleButton.tsx b/packages/desktop-client/src/components/mobile/schedules/AddScheduleButton.tsx index c1961b45aa..eb9b574493 100644 --- a/packages/desktop-client/src/components/mobile/schedules/AddScheduleButton.tsx +++ b/packages/desktop-client/src/components/mobile/schedules/AddScheduleButton.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { SvgAdd } from '@actual-app/components/icons/v1'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +import { useNavigate } from '#hooks/useNavigate'; export function AddScheduleButton() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/mobile/schedules/MobileScheduleEditPage.tsx b/packages/desktop-client/src/components/mobile/schedules/MobileScheduleEditPage.tsx index 0acc89ea11..19eb3383b1 100644 --- a/packages/desktop-client/src/components/mobile/schedules/MobileScheduleEditPage.tsx +++ b/packages/desktop-client/src/components/mobile/schedules/MobileScheduleEditPage.tsx @@ -8,21 +8,23 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send, sendCatch } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import type { + RecurConfig, + ScheduleEntity, +} from '@actual-app/core/types/models'; -import { send, sendCatch } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import type { RecurConfig, ScheduleEntity } from 'loot-core/types/models'; - -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { updateScheduleConditions } from '@desktop-client/components/schedules/schedule-edit-utils'; -import { ScheduleEditForm } from '@desktop-client/components/schedules/ScheduleEditForm'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useScheduleEdit } from '@desktop-client/hooks/useScheduleEdit'; -import { useSelected } from '@desktop-client/hooks/useSelected'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page } from '#components/Page'; +import { updateScheduleConditions } from '#components/schedules/schedule-edit-utils'; +import { ScheduleEditForm } from '#components/schedules/ScheduleEditForm'; +import { useNavigate } from '#hooks/useNavigate'; +import { useScheduleEdit } from '#hooks/useScheduleEdit'; +import { useSelected } from '#hooks/useSelected'; +import { useUndo } from '#hooks/useUndo'; +import { aqlQuery } from '#queries/aqlQuery'; export function MobileScheduleEditPage() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/mobile/schedules/MobileSchedulesPage.tsx b/packages/desktop-client/src/components/mobile/schedules/MobileSchedulesPage.tsx index d442c17fe8..5347676719 100644 --- a/packages/desktop-client/src/components/mobile/schedules/MobileSchedulesPage.tsx +++ b/packages/desktop-client/src/components/mobile/schedules/MobileSchedulesPage.tsx @@ -5,29 +5,28 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { format as monthUtilFormat } from '@actual-app/core/shared/months'; +import { getNormalisedString } from '@actual-app/core/shared/normalisation'; +import { q } from '@actual-app/core/shared/query'; +import { getScheduledAmount } from '@actual-app/core/shared/schedules'; +import type { ScheduleEntity } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import { format as monthUtilFormat } from 'loot-core/shared/months'; -import { getNormalisedString } from 'loot-core/shared/normalisation'; -import { q } from 'loot-core/shared/query'; -import { getScheduledAmount } from 'loot-core/shared/schedules'; -import type { ScheduleEntity } from 'loot-core/types/models'; +import { Search } from '#components/common/Search'; +import { MobilePageHeader, Page } from '#components/Page'; +import { useAccounts } from '#hooks/useAccounts'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useFormat } from '#hooks/useFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePayees } from '#hooks/usePayees'; +import { useSchedules } from '#hooks/useSchedules'; +import { useUndo } from '#hooks/useUndo'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; import { AddScheduleButton } from './AddScheduleButton'; import { SchedulesList } from './SchedulesList'; -import { Search } from '@desktop-client/components/common/Search'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; - export function MobileSchedulesPage() { const { t } = useTranslation(); const navigate = useNavigate(); diff --git a/packages/desktop-client/src/components/mobile/schedules/SchedulesList.tsx b/packages/desktop-client/src/components/mobile/schedules/SchedulesList.tsx index ac4db34afe..3d804b8ce9 100644 --- a/packages/desktop-client/src/components/mobile/schedules/SchedulesList.tsx +++ b/packages/desktop-client/src/components/mobile/schedules/SchedulesList.tsx @@ -5,15 +5,14 @@ import { AnimatedLoading } from '@actual-app/components/icons/AnimatedLoading'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { ScheduleStatusType } from '@actual-app/core/shared/schedules'; +import type { ScheduleEntity } from '@actual-app/core/types/models'; -import type { ScheduleStatusType } from 'loot-core/shared/schedules'; -import type { ScheduleEntity } from 'loot-core/types/models'; +import { ActionableGridListItem } from '#components/mobile/ActionableGridListItem'; +import { MOBILE_NAV_HEIGHT } from '#components/mobile/MobileNavTabs'; import { SchedulesListItem } from './SchedulesListItem'; -import { ActionableGridListItem } from '@desktop-client/components/mobile/ActionableGridListItem'; -import { MOBILE_NAV_HEIGHT } from '@desktop-client/components/mobile/MobileNavTabs'; - type CompletedSchedulesItem = { id: 'show-completed' }; type SchedulesListEntry = ScheduleEntity | CompletedSchedulesItem; diff --git a/packages/desktop-client/src/components/mobile/schedules/SchedulesListItem.tsx b/packages/desktop-client/src/components/mobile/schedules/SchedulesListItem.tsx index 176c755dc1..a624e57544 100644 --- a/packages/desktop-client/src/components/mobile/schedules/SchedulesListItem.tsx +++ b/packages/desktop-client/src/components/mobile/schedules/SchedulesListItem.tsx @@ -8,18 +8,17 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { format as monthUtilFormat } from '@actual-app/core/shared/months'; +import type { ScheduleStatusType } from '@actual-app/core/shared/schedules'; +import { getScheduledAmount } from '@actual-app/core/shared/schedules'; +import type { ScheduleEntity } from '@actual-app/core/types/models'; +import type { WithRequired } from '@actual-app/core/types/util'; -import { format as monthUtilFormat } from 'loot-core/shared/months'; -import type { ScheduleStatusType } from 'loot-core/shared/schedules'; -import { getScheduledAmount } from 'loot-core/shared/schedules'; -import type { ScheduleEntity } from 'loot-core/types/models'; -import type { WithRequired } from 'loot-core/types/util'; - -import { ActionableGridListItem } from '@desktop-client/components/mobile/ActionableGridListItem'; -import { StatusBadge } from '@desktop-client/components/schedules/StatusBadge'; -import { DisplayId } from '@desktop-client/components/util/DisplayId'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useFormat } from '@desktop-client/hooks/useFormat'; +import { ActionableGridListItem } from '#components/mobile/ActionableGridListItem'; +import { StatusBadge } from '#components/schedules/StatusBadge'; +import { DisplayId } from '#components/util/DisplayId'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useFormat } from '#hooks/useFormat'; type SchedulesListItemProps = { onDelete: () => void; diff --git a/packages/desktop-client/src/components/mobile/transactions/AddTransactionButton.tsx b/packages/desktop-client/src/components/mobile/transactions/AddTransactionButton.tsx index cc6bfc01d7..9b56af8cd3 100644 --- a/packages/desktop-client/src/components/mobile/transactions/AddTransactionButton.tsx +++ b/packages/desktop-client/src/components/mobile/transactions/AddTransactionButton.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { SvgAdd } from '@actual-app/components/icons/v1'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +import { useNavigate } from '#hooks/useNavigate'; type AddTransactionButtonProps = { to?: string; diff --git a/packages/desktop-client/src/components/mobile/transactions/FocusableAmountInput.tsx b/packages/desktop-client/src/components/mobile/transactions/FocusableAmountInput.tsx index 03ce946d65..3c0939782c 100644 --- a/packages/desktop-client/src/components/mobile/transactions/FocusableAmountInput.tsx +++ b/packages/desktop-client/src/components/mobile/transactions/FocusableAmountInput.tsx @@ -11,18 +11,17 @@ import type { CSSProperties as EmotionCSSProperties } from '@actual-app/componen import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { css } from '@emotion/css'; - import { amountToCurrency, appendDecimals, currencyToAmount, reapplyThousandSeparators, -} from 'loot-core/shared/util'; +} from '@actual-app/core/shared/util'; +import { css } from '@emotion/css'; -import { makeAmountFullStyle } from '@desktop-client/components/budget/util'; -import { useMergedRefs } from '@desktop-client/hooks/useMergedRefs'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; +import { makeAmountFullStyle } from '#components/budget/util'; +import { useMergedRefs } from '#hooks/useMergedRefs'; +import { useSyncedPref } from '#hooks/useSyncedPref'; type AmountInputProps = { value: number; diff --git a/packages/desktop-client/src/components/mobile/transactions/TransactionEdit.tsx b/packages/desktop-client/src/components/mobile/transactions/TransactionEdit.tsx index 038b8e1bee..82b6396174 100644 --- a/packages/desktop-client/src/components/mobile/transactions/TransactionEdit.tsx +++ b/packages/desktop-client/src/components/mobile/transactions/TransactionEdit.tsx @@ -24,20 +24,16 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Toggle } from '@actual-app/components/toggle'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { DEFAULT_MAX_DISTANCE_METERS } from '@actual-app/core/shared/constants'; +import { calculateDistance } from '@actual-app/core/shared/location-utils'; +import * as monthUtils from '@actual-app/core/shared/months'; +import * as Platform from '@actual-app/core/shared/platform'; +import { q } from '@actual-app/core/shared/query'; import { - format as formatDate, - isValid as isValidDate, - parse as parseDate, - parseISO, -} from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import { DEFAULT_MAX_DISTANCE_METERS } from 'loot-core/shared/constants'; -import { calculateDistance } from 'loot-core/shared/location-utils'; -import * as monthUtils from 'loot-core/shared/months'; -import * as Platform from 'loot-core/shared/platform'; -import { q } from 'loot-core/shared/query'; -import { getStatusLabel, getUpcomingDays } from 'loot-core/shared/schedules'; + getStatusLabel, + getUpcomingDays, +} from '@actual-app/core/shared/schedules'; import { addSplitTransaction, deleteTransaction, @@ -46,7 +42,7 @@ import { splitTransaction, ungroupTransactions, updateTransaction, -} from 'loot-core/shared/transactions'; +} from '@actual-app/core/shared/transactions'; import { amountToInteger, applyFindReplace, @@ -56,48 +52,54 @@ import { integerToAmount, integerToCurrency, titleFirst, -} from 'loot-core/shared/util'; +} from '@actual-app/core/shared/util'; import type { AccountEntity, CategoryEntity, PayeeEntity, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { + format as formatDate, + isValid as isValidDate, + parse as parseDate, + parseISO, +} from 'date-fns'; -import { FocusableAmountInput } from './FocusableAmountInput'; - -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; import { FieldLabel, InputField, TapField, ToggleField, -} from '@desktop-client/components/mobile/MobileForms'; -import { getPrettyPayee } from '@desktop-client/components/mobile/utils'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { createSingleTimeScheduleFromTransaction } from '@desktop-client/components/transactions/TransactionList'; -import { AmountInput } from '@desktop-client/components/util/AmountInput'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useInitialMount } from '@desktop-client/hooks/useInitialMount'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { useLocationPermission } from '@desktop-client/hooks/useLocationPermission'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useNearbyPayees } from '@desktop-client/hooks/useNearbyPayees'; -import { usePayees } from '@desktop-client/hooks/usePayees'; +} from '#components/mobile/MobileForms'; +import { getPrettyPayee } from '#components/mobile/utils'; +import { MobilePageHeader, Page } from '#components/Page'; +import { createSingleTimeScheduleFromTransaction } from '#components/transactions/TransactionList'; +import { AmountInput } from '#components/util/AmountInput'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useInitialMount } from '#hooks/useInitialMount'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { useLocationPermission } from '#hooks/useLocationPermission'; +import { useNavigate } from '#hooks/useNavigate'; +import { useNearbyPayees } from '#hooks/useNearbyPayees'; +import { usePayees } from '#hooks/usePayees'; import { SingleActiveEditFormProvider, useSingleActiveEditForm, -} from '@desktop-client/hooks/useSingleActiveEditForm'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useSavePayeeLocationMutation } from '@desktop-client/payees'; -import { locationService } from '@desktop-client/payees/location'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; -import { useDispatch, useSelector } from '@desktop-client/redux'; -import { setLastTransaction } from '@desktop-client/transactions/transactionsSlice'; +} from '#hooks/useSingleActiveEditForm'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { pushModal } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useSavePayeeLocationMutation } from '#payees'; +import { locationService } from '#payees/location'; +import { aqlQuery } from '#queries/aqlQuery'; +import { useDispatch, useSelector } from '#redux'; +import { setLastTransaction } from '#transactions/transactionsSlice'; + +import { FocusableAmountInput } from './FocusableAmountInput'; function getFieldName(transactionId: TransactionEntity['id'], field: string) { return `${field}-${transactionId}`; diff --git a/packages/desktop-client/src/components/mobile/transactions/TransactionList.tsx b/packages/desktop-client/src/components/mobile/transactions/TransactionList.tsx index 328c1d9919..bfbbd01b75 100644 --- a/packages/desktop-client/src/components/mobile/transactions/TransactionList.tsx +++ b/packages/desktop-client/src/components/mobile/transactions/TransactionList.tsx @@ -28,32 +28,31 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { isPreviewId } from '@actual-app/core/shared/transactions'; +import { validForTransfer } from '@actual-app/core/shared/transfer'; +import { groupById, integerToCurrency } from '@actual-app/core/shared/util'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { + CategoryEntity, + TransactionEntity, +} from '@actual-app/core/types/models'; -import * as monthUtils from 'loot-core/shared/months'; -import { isPreviewId } from 'loot-core/shared/transactions'; -import { validForTransfer } from 'loot-core/shared/transfer'; -import { groupById, integerToCurrency } from 'loot-core/shared/util'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { CategoryEntity, TransactionEntity } from 'loot-core/types/models'; +import { FloatingActionBar } from '#components/mobile/FloatingActionBar'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategoriesById } from '#hooks/useCategories'; +import { useLocale } from '#hooks/useLocale'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePayees } from '#hooks/usePayees'; +import { useScrollListener } from '#hooks/useScrollListener'; +import { useSelectedDispatch, useSelectedItems } from '#hooks/useSelected'; +import { useTransactionBatchActions } from '#hooks/useTransactionBatchActions'; +import { useUndo } from '#hooks/useUndo'; +import { setNotificationInset } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; import { ROW_HEIGHT, TransactionListItem } from './TransactionListItem'; -import { FloatingActionBar } from '@desktop-client/components/mobile/FloatingActionBar'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategoriesById } from '@desktop-client/hooks/useCategories'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { useScrollListener } from '@desktop-client/hooks/useScrollListener'; -import { - useSelectedDispatch, - useSelectedItems, -} from '@desktop-client/hooks/useSelected'; -import { useTransactionBatchActions } from '@desktop-client/hooks/useTransactionBatchActions'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { setNotificationInset } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; - const NOTIFICATION_BOTTOM_INSET = 75; type LoadingProps = { diff --git a/packages/desktop-client/src/components/mobile/transactions/TransactionListItem.tsx b/packages/desktop-client/src/components/mobile/transactions/TransactionListItem.tsx index 7b83c9db38..ba842599a8 100644 --- a/packages/desktop-client/src/components/mobile/transactions/TransactionListItem.tsx +++ b/packages/desktop-client/src/components/mobile/transactions/TransactionListItem.tsx @@ -21,28 +21,30 @@ import { Text } from '@actual-app/components/text'; import { TextOneLine } from '@actual-app/components/text-one-line'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { isPreviewId } from '@actual-app/core/shared/transactions'; +import { integerToCurrency } from '@actual-app/core/shared/util'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { + AccountEntity, + TransactionEntity, +} from '@actual-app/core/types/models'; import { PressResponder, useLongPress, usePress, } from '@react-aria/interactions'; -import { isPreviewId } from 'loot-core/shared/transactions'; -import { integerToCurrency } from 'loot-core/shared/util'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { AccountEntity, TransactionEntity } from 'loot-core/types/models'; +import { makeAmountFullStyle } from '#components/budget/util'; +import { useAccount } from '#hooks/useAccount'; +import { useCachedSchedules } from '#hooks/useCachedSchedules'; +import { useCategories } from '#hooks/useCategories'; +import { useDisplayPayee } from '#hooks/useDisplayPayee'; +import { usePayee } from '#hooks/usePayee'; +import { NotesTagFormatter } from '#notes/NotesTagFormatter'; +import { useSelector } from '#redux'; import { lookupName, Status } from './TransactionEdit'; -import { makeAmountFullStyle } from '@desktop-client/components/budget/util'; -import { useAccount } from '@desktop-client/hooks/useAccount'; -import { useCachedSchedules } from '@desktop-client/hooks/useCachedSchedules'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useDisplayPayee } from '@desktop-client/hooks/useDisplayPayee'; -import { usePayee } from '@desktop-client/hooks/usePayee'; -import { NotesTagFormatter } from '@desktop-client/notes/NotesTagFormatter'; -import { useSelector } from '@desktop-client/redux'; - export const ROW_HEIGHT = 60; const getTextStyle = ({ diff --git a/packages/desktop-client/src/components/mobile/transactions/TransactionListWithBalances.tsx b/packages/desktop-client/src/components/mobile/transactions/TransactionListWithBalances.tsx index c849995f1b..a3ba5bfb86 100644 --- a/packages/desktop-client/src/components/mobile/transactions/TransactionListWithBalances.tsx +++ b/packages/desktop-client/src/components/mobile/transactions/TransactionListWithBalances.tsx @@ -6,30 +6,19 @@ import { Label } from '@actual-app/components/label'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { TransactionEntity } from '@actual-app/core/types/models'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { TransactionEntity } from 'loot-core/types/models'; +import { Search } from '#components/common/Search'; +import { PullToRefresh } from '#components/mobile/PullToRefresh'; +import { CellValue, CellValueText } from '#components/spreadsheet/CellValue'; +import { DisplayPayeeProvider } from '#hooks/useDisplayPayee'; +import { SelectedProvider, useSelected } from '#hooks/useSelected'; +import { useSheetValue } from '#hooks/useSheetValue'; +import type { Binding, SheetFields, SheetNames } from '#spreadsheet'; import { TransactionList } from './TransactionList'; -import { Search } from '@desktop-client/components/common/Search'; -import { PullToRefresh } from '@desktop-client/components/mobile/PullToRefresh'; -import { - CellValue, - CellValueText, -} from '@desktop-client/components/spreadsheet/CellValue'; -import { DisplayPayeeProvider } from '@desktop-client/hooks/useDisplayPayee'; -import { - SelectedProvider, - useSelected, -} from '@desktop-client/hooks/useSelected'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; -import type { - Binding, - SheetFields, - SheetNames, -} from '@desktop-client/spreadsheet'; - type TransactionSearchInputProps = { placeholder: string; onSearch: TransactionListWithBalancesProps['onSearch']; diff --git a/packages/desktop-client/src/components/mobile/utils.ts b/packages/desktop-client/src/components/mobile/utils.ts index 0ee3af7b28..3324365f14 100644 --- a/packages/desktop-client/src/components/mobile/utils.ts +++ b/packages/desktop-client/src/components/mobile/utils.ts @@ -4,7 +4,7 @@ import type { AccountEntity, PayeeEntity, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; type GetPrettyPayeeProps = { t: ReturnType['t']; diff --git a/packages/desktop-client/src/components/modals/AccountAutocompleteModal.tsx b/packages/desktop-client/src/components/modals/AccountAutocompleteModal.tsx index 8700434fdb..9afccb643c 100644 --- a/packages/desktop-client/src/components/modals/AccountAutocompleteModal.tsx +++ b/packages/desktop-client/src/components/modals/AccountAutocompleteModal.tsx @@ -5,15 +5,15 @@ import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { AccountAutocomplete } from '@desktop-client/components/autocomplete/AccountAutocomplete'; +import { AccountAutocomplete } from '#components/autocomplete/AccountAutocomplete'; import { Modal, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { SectionLabel } from '@desktop-client/components/forms'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import { SectionLabel } from '#components/forms'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type AccountAutocompleteModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/AccountMenuModal.tsx b/packages/desktop-client/src/components/modals/AccountMenuModal.tsx index 4715edf278..dc20610e55 100644 --- a/packages/desktop-client/src/components/modals/AccountMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/AccountMenuModal.tsx @@ -14,22 +14,21 @@ import { Popover } from '@actual-app/components/popover'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import type { AccountEntity } from 'loot-core/types/models'; +import type { AccountEntity } from '@actual-app/core/types/models'; import { Modal, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { Notes } from '@desktop-client/components/Notes'; -import { validateAccountName } from '@desktop-client/components/util/accountValidation'; -import { useAccount } from '@desktop-client/hooks/useAccount'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useNotes } from '@desktop-client/hooks/useNotes'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import { Notes } from '#components/Notes'; +import { validateAccountName } from '#components/util/accountValidation'; +import { useAccount } from '#hooks/useAccount'; +import { useAccounts } from '#hooks/useAccounts'; +import { useNotes } from '#hooks/useNotes'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type AccountMenuModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/BudgetAutomationsModal.test.ts b/packages/desktop-client/src/components/modals/BudgetAutomationsModal.test.ts index cb0e2b1f86..2252c39325 100644 --- a/packages/desktop-client/src/components/modals/BudgetAutomationsModal.test.ts +++ b/packages/desktop-client/src/components/modals/BudgetAutomationsModal.test.ts @@ -1,4 +1,4 @@ -import type { Template } from 'loot-core/types/models/templates'; +import type { Template } from '@actual-app/core/types/models/templates'; import { migrateTemplatesToAutomations } from './BudgetAutomationsModal'; diff --git a/packages/desktop-client/src/components/modals/BudgetAutomationsModal.tsx b/packages/desktop-client/src/components/modals/BudgetAutomationsModal.tsx index fed14a7a7b..3b5dac2ed3 100644 --- a/packages/desktop-client/src/components/modals/BudgetAutomationsModal.tsx +++ b/packages/desktop-client/src/components/modals/BudgetAutomationsModal.tsx @@ -7,34 +7,29 @@ import { AnimatedLoading } from '@actual-app/components/icons/AnimatedLoading'; import { SpaceBetween } from '@actual-app/components/space-between'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import uniqueId from 'lodash/uniqueId'; - -import { send } from 'loot-core/platform/client/connection'; -import { dayFromDate, firstDayOfMonth } from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; +import { send } from '@actual-app/core/platform/client/connection'; +import { dayFromDate, firstDayOfMonth } from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; import type { CategoryGroupEntity, ScheduleEntity, -} from 'loot-core/types/models'; -import type { Template } from 'loot-core/types/models/templates'; +} from '@actual-app/core/types/models'; +import type { Template } from '@actual-app/core/types/models/templates'; +import uniqueId from 'lodash/uniqueId'; -import { Warning } from '@desktop-client/components/alerts'; -import { BudgetAutomation } from '@desktop-client/components/budget/goals/BudgetAutomation'; -import type { DisplayTemplateType } from '@desktop-client/components/budget/goals/constants'; -import { DEFAULT_PRIORITY } from '@desktop-client/components/budget/goals/reducer'; -import { useBudgetAutomationCategories } from '@desktop-client/components/budget/goals/useBudgetAutomationCategories'; -import { Link } from '@desktop-client/components/common/Link'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useBudgetAutomations } from '@desktop-client/hooks/useBudgetAutomations'; -import { useCategory } from '@desktop-client/hooks/useCategory'; -import { useNotes } from '@desktop-client/hooks/useNotes'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { Warning } from '#components/alerts'; +import { BudgetAutomation } from '#components/budget/goals/BudgetAutomation'; +import type { DisplayTemplateType } from '#components/budget/goals/constants'; +import { DEFAULT_PRIORITY } from '#components/budget/goals/reducer'; +import { useBudgetAutomationCategories } from '#components/budget/goals/useBudgetAutomationCategories'; +import { Link } from '#components/common/Link'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useBudgetAutomations } from '#hooks/useBudgetAutomations'; +import { useCategory } from '#hooks/useCategory'; +import { useNotes } from '#hooks/useNotes'; +import { useSchedules } from '#hooks/useSchedules'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; type AutomationEntry = { id: string; diff --git a/packages/desktop-client/src/components/modals/BudgetPageMenuModal.tsx b/packages/desktop-client/src/components/modals/BudgetPageMenuModal.tsx index a9685bf823..bb61419ecf 100644 --- a/packages/desktop-client/src/components/modals/BudgetPageMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/BudgetPageMenuModal.tsx @@ -6,13 +6,9 @@ import { Menu } from '@actual-app/components/menu'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useLocalPref } from '#hooks/useLocalPref'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type BudgetPageMenuModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/CategoryAutocompleteModal.tsx b/packages/desktop-client/src/components/modals/CategoryAutocompleteModal.tsx index 43327fc33d..d8b11ef573 100644 --- a/packages/desktop-client/src/components/modals/CategoryAutocompleteModal.tsx +++ b/packages/desktop-client/src/components/modals/CategoryAutocompleteModal.tsx @@ -4,19 +4,18 @@ import { useTranslation } from 'react-i18next'; import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; -import * as monthUtils from 'loot-core/shared/months'; - -import { CategoryAutocomplete } from '@desktop-client/components/autocomplete/CategoryAutocomplete'; +import { CategoryAutocomplete } from '#components/autocomplete/CategoryAutocomplete'; import { Modal, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { SectionLabel } from '@desktop-client/components/forms'; -import { SheetNameProvider } from '@desktop-client/hooks/useSheetName'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import { SectionLabel } from '#components/forms'; +import { SheetNameProvider } from '#hooks/useSheetName'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type CategoryAutocompleteModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/CategoryGroupAutocompleteModal.tsx b/packages/desktop-client/src/components/modals/CategoryGroupAutocompleteModal.tsx index f6bc72bd78..c8fe79e661 100644 --- a/packages/desktop-client/src/components/modals/CategoryGroupAutocompleteModal.tsx +++ b/packages/desktop-client/src/components/modals/CategoryGroupAutocompleteModal.tsx @@ -4,19 +4,18 @@ import { useTranslation } from 'react-i18next'; import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; -import * as monthUtils from 'loot-core/shared/months'; - -import { CategoryGroupAutocomplete } from '@desktop-client/components/autocomplete/CategoryGroupAutocomplete'; +import { CategoryGroupAutocomplete } from '#components/autocomplete/CategoryGroupAutocomplete'; import { Modal, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { SectionLabel } from '@desktop-client/components/forms'; -import { SheetNameProvider } from '@desktop-client/hooks/useSheetName'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import { SectionLabel } from '#components/forms'; +import { SheetNameProvider } from '#hooks/useSheetName'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type CategoryGroupAutocompleteModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/CategoryGroupMenuModal.tsx b/packages/desktop-client/src/components/modals/CategoryGroupMenuModal.tsx index 718e956fa6..effc23d736 100644 --- a/packages/desktop-client/src/components/modals/CategoryGroupMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/CategoryGroupMenuModal.tsx @@ -29,14 +29,14 @@ import { ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { CategoryGroupActionMenu } from '@desktop-client/components/mobile/budget/CategoryGroupActionMenu'; -import { Notes } from '@desktop-client/components/Notes'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { useNotes } from '@desktop-client/hooks/useNotes'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import { CategoryGroupActionMenu } from '#components/mobile/budget/CategoryGroupActionMenu'; +import { Notes } from '#components/Notes'; +import { useCategories } from '#hooks/useCategories'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { useNotes } from '#hooks/useNotes'; +import { useUndo } from '#hooks/useUndo'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type CategoryGroupMenuModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/CategoryMenuModal.tsx b/packages/desktop-client/src/components/modals/CategoryMenuModal.tsx index d255f3efb3..5c401892bc 100644 --- a/packages/desktop-client/src/components/modals/CategoryMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/CategoryMenuModal.tsx @@ -24,12 +24,12 @@ import { ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { Notes } from '@desktop-client/components/Notes'; -import { useCategory } from '@desktop-client/hooks/useCategory'; -import { useCategoryGroup } from '@desktop-client/hooks/useCategoryGroup'; -import { useNotes } from '@desktop-client/hooks/useNotes'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import { Notes } from '#components/Notes'; +import { useCategory } from '#hooks/useCategory'; +import { useCategoryGroup } from '#hooks/useCategoryGroup'; +import { useNotes } from '#hooks/useNotes'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type CategoryMenuModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/CloseAccountModal.tsx b/packages/desktop-client/src/components/modals/CloseAccountModal.tsx index 3bfeebb92f..867f961b26 100644 --- a/packages/desktop-client/src/components/modals/CloseAccountModal.tsx +++ b/packages/desktop-client/src/components/modals/CloseAccountModal.tsx @@ -12,25 +12,20 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { integerToCurrency } from '@actual-app/core/shared/util'; +import type { AccountEntity } from '@actual-app/core/types/models'; +import type { TransObjectLiteral } from '@actual-app/core/types/util'; -import { integerToCurrency } from 'loot-core/shared/util'; -import type { AccountEntity } from 'loot-core/types/models'; -import type { TransObjectLiteral } from 'loot-core/types/util'; - -import { useCloseAccountMutation } from '@desktop-client/accounts'; -import { AccountAutocomplete } from '@desktop-client/components/autocomplete/AccountAutocomplete'; -import { CategoryAutocomplete } from '@desktop-client/components/autocomplete/CategoryAutocomplete'; -import { Link } from '@desktop-client/components/common/Link'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { useCloseAccountMutation } from '#accounts'; +import { AccountAutocomplete } from '#components/autocomplete/AccountAutocomplete'; +import { CategoryAutocomplete } from '#components/autocomplete/CategoryAutocomplete'; +import { Link } from '#components/common/Link'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { pushModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; function needsCategory( account: AccountEntity, diff --git a/packages/desktop-client/src/components/modals/ConfirmCategoryDeleteModal.tsx b/packages/desktop-client/src/components/modals/ConfirmCategoryDeleteModal.tsx index edeb2d2ab6..b244e67dc6 100644 --- a/packages/desktop-client/src/components/modals/ConfirmCategoryDeleteModal.tsx +++ b/packages/desktop-client/src/components/modals/ConfirmCategoryDeleteModal.tsx @@ -7,17 +7,12 @@ import { Button } from '@actual-app/components/button'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { TransObjectLiteral } from '@actual-app/core/types/util'; -import type { TransObjectLiteral } from 'loot-core/types/util'; - -import { CategoryAutocomplete } from '@desktop-client/components/autocomplete/CategoryAutocomplete'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { CategoryAutocomplete } from '#components/autocomplete/CategoryAutocomplete'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useCategories } from '#hooks/useCategories'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type ConfirmCategoryDeleteModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/ConfirmDeleteModal.tsx b/packages/desktop-client/src/components/modals/ConfirmDeleteModal.tsx index 41b0355d00..91aa73d610 100644 --- a/packages/desktop-client/src/components/modals/ConfirmDeleteModal.tsx +++ b/packages/desktop-client/src/components/modals/ConfirmDeleteModal.tsx @@ -8,12 +8,8 @@ import { Paragraph } from '@actual-app/components/paragraph'; import { styles } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type ConfirmDeleteModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/ConfirmPayeesMergeModal.tsx b/packages/desktop-client/src/components/modals/ConfirmPayeesMergeModal.tsx index 0babf29028..5051c35836 100644 --- a/packages/desktop-client/src/components/modals/ConfirmPayeesMergeModal.tsx +++ b/packages/desktop-client/src/components/modals/ConfirmPayeesMergeModal.tsx @@ -7,14 +7,10 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { Information } from '@desktop-client/components/alerts'; -import { - Modal, - ModalButtons, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { Information } from '#components/alerts'; +import { Modal, ModalButtons, ModalHeader } from '#components/common/Modal'; +import { usePayees } from '#hooks/usePayees'; +import type { Modal as ModalType } from '#modals/modalsSlice'; const mergePayeeStyle = { padding: 10, diff --git a/packages/desktop-client/src/components/modals/ConfirmTransactionEditModal.tsx b/packages/desktop-client/src/components/modals/ConfirmTransactionEditModal.tsx index 633065afd4..c43e3454ef 100644 --- a/packages/desktop-client/src/components/modals/ConfirmTransactionEditModal.tsx +++ b/packages/desktop-client/src/components/modals/ConfirmTransactionEditModal.tsx @@ -9,12 +9,8 @@ import { InitialFocus } from '@actual-app/components/initial-focus'; import { styles } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type ConfirmTransactionEditModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/ConfirmUnlinkAccountModal.tsx b/packages/desktop-client/src/components/modals/ConfirmUnlinkAccountModal.tsx index bb90da1d53..32ecdb5b3c 100644 --- a/packages/desktop-client/src/components/modals/ConfirmUnlinkAccountModal.tsx +++ b/packages/desktop-client/src/components/modals/ConfirmUnlinkAccountModal.tsx @@ -6,12 +6,8 @@ import { InitialFocus } from '@actual-app/components/initial-focus'; import { Paragraph } from '@actual-app/components/paragraph'; import { View } from '@actual-app/components/view'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type ConfirmUnlinkAccountModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/ConvertToScheduleModal.tsx b/packages/desktop-client/src/components/modals/ConvertToScheduleModal.tsx index 6c8b5e9ba4..110f757953 100644 --- a/packages/desktop-client/src/components/modals/ConvertToScheduleModal.tsx +++ b/packages/desktop-client/src/components/modals/ConvertToScheduleModal.tsx @@ -9,12 +9,8 @@ import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type ConvertToScheduleModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/CopyWidgetToDashboardModal.tsx b/packages/desktop-client/src/components/modals/CopyWidgetToDashboardModal.tsx index 0135b5c08c..292162fedf 100644 --- a/packages/desktop-client/src/components/modals/CopyWidgetToDashboardModal.tsx +++ b/packages/desktop-client/src/components/modals/CopyWidgetToDashboardModal.tsx @@ -6,13 +6,9 @@ import { Button } from '@actual-app/components/button'; import { Menu } from '@actual-app/components/menu'; import { View } from '@actual-app/components/view'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useDashboardPages } from '@desktop-client/hooks/useDashboardPages'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useDashboardPages } from '#hooks/useDashboardPages'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type CopyWidgetToDashboardModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/CoverModal.tsx b/packages/desktop-client/src/components/modals/CoverModal.tsx index 7d3300256e..1f44e6fafb 100644 --- a/packages/desktop-client/src/components/modals/CoverModal.tsx +++ b/packages/desktop-client/src/components/modals/CoverModal.tsx @@ -5,29 +5,21 @@ import { Button } from '@actual-app/components/button'; import { InitialFocus } from '@actual-app/components/initial-focus'; import { styles } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; - -import type { IntegerAmount } from 'loot-core/shared/util'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; import { addToBeBudgetedGroup, removeCategoriesFromGroups, -} from '@desktop-client/components/budget/util'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { - FieldLabel, - TapField, -} from '@desktop-client/components/mobile/MobileForms'; -import { AmountInput } from '@desktop-client/components/util/AmountInput'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useInitialMount } from '@desktop-client/hooks/useInitialMount'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +} from '#components/budget/util'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { FieldLabel, TapField } from '#components/mobile/MobileForms'; +import { AmountInput } from '#components/util/AmountInput'; +import { useCategories } from '#hooks/useCategories'; +import { useInitialMount } from '#hooks/useInitialMount'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { pushModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; type CoverModalProps = Extract['options']; diff --git a/packages/desktop-client/src/components/modals/CreateAccountModal.tsx b/packages/desktop-client/src/components/modals/CreateAccountModal.tsx index aeef079729..4dddee261c 100644 --- a/packages/desktop-client/src/components/modals/CreateAccountModal.tsx +++ b/packages/desktop-client/src/components/modals/CreateAccountModal.tsx @@ -11,28 +11,23 @@ import { Popover } from '@actual-app/components/popover'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; -import { send } from 'loot-core/platform/client/connection'; - -import { useAuth } from '@desktop-client/auth/AuthProvider'; -import { Permissions } from '@desktop-client/auth/types'; -import { Warning } from '@desktop-client/components/alerts'; -import { Link } from '@desktop-client/components/common/Link'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useMultiuserEnabled } from '@desktop-client/components/ServerContext'; -import { authorizeBank } from '@desktop-client/gocardless'; -import { useGoCardlessStatus } from '@desktop-client/hooks/useGoCardlessStatus'; -import { usePluggyAiStatus } from '@desktop-client/hooks/usePluggyAiStatus'; -import { useSimpleFinStatus } from '@desktop-client/hooks/useSimpleFinStatus'; -import { useSyncServerStatus } from '@desktop-client/hooks/useSyncServerStatus'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { useAuth } from '#auth/AuthProvider'; +import { Permissions } from '#auth/types'; +import { Warning } from '#components/alerts'; +import { Link } from '#components/common/Link'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useMultiuserEnabled } from '#components/ServerContext'; +import { authorizeBank } from '#gocardless'; +import { useGoCardlessStatus } from '#hooks/useGoCardlessStatus'; +import { usePluggyAiStatus } from '#hooks/usePluggyAiStatus'; +import { useSimpleFinStatus } from '#hooks/useSimpleFinStatus'; +import { useSyncServerStatus } from '#hooks/useSyncServerStatus'; +import { pushModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; type CreateAccountModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/CreateEncryptionKeyModal.tsx b/packages/desktop-client/src/components/modals/CreateEncryptionKeyModal.tsx index 10d315595a..84e60915d7 100644 --- a/packages/desktop-client/src/components/modals/CreateEncryptionKeyModal.tsx +++ b/packages/desktop-client/src/components/modals/CreateEncryptionKeyModal.tsx @@ -12,23 +12,22 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { getCreateKeyError } from '@actual-app/core/shared/errors'; import { css } from '@emotion/css'; -import { send } from 'loot-core/platform/client/connection'; -import { getCreateKeyError } from 'loot-core/shared/errors'; - -import { sync } from '@desktop-client/app/appSlice'; -import { loadAllFiles } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { Link } from '@desktop-client/components/common/Link'; +import { sync } from '#app/appSlice'; +import { loadAllFiles } from '#budgetfiles/budgetfilesSlice'; +import { Link } from '#components/common/Link'; import { Modal, ModalButtons, ModalCloseButton, ModalHeader, -} from '@desktop-client/components/common/Modal'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { loadGlobalPrefs } from '@desktop-client/prefs/prefsSlice'; -import { useDispatch } from '@desktop-client/redux'; +} from '#components/common/Modal'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { loadGlobalPrefs } from '#prefs/prefsSlice'; +import { useDispatch } from '#redux'; type CreateEncryptionKeyModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/CreateLocalAccountModal.tsx b/packages/desktop-client/src/components/modals/CreateLocalAccountModal.tsx index cfab6d88d7..e99423daf7 100644 --- a/packages/desktop-client/src/components/modals/CreateLocalAccountModal.tsx +++ b/packages/desktop-client/src/components/modals/CreateLocalAccountModal.tsx @@ -12,24 +12,23 @@ import { Input } from '@actual-app/components/input'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { toRelaxedNumber } from '@actual-app/core/shared/util'; -import { toRelaxedNumber } from 'loot-core/shared/util'; - -import { useCreateAccountMutation } from '@desktop-client/accounts'; -import { Link } from '@desktop-client/components/common/Link'; +import { useCreateAccountMutation } from '#accounts'; +import { Link } from '#components/common/Link'; import { Modal, ModalButtons, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { Checkbox } from '@desktop-client/components/forms'; -import { validateAccountName } from '@desktop-client/components/util/accountValidation'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { closeModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +} from '#components/common/Modal'; +import { Checkbox } from '#components/forms'; +import { validateAccountName } from '#components/util/accountValidation'; +import { useAccounts } from '#hooks/useAccounts'; +import { useNavigate } from '#hooks/useNavigate'; +import { closeModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; export function CreateLocalAccountModal() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/modals/EditAccess.tsx b/packages/desktop-client/src/components/modals/EditAccess.tsx index 06dada014b..5f17e88853 100644 --- a/packages/desktop-client/src/components/modals/EditAccess.tsx +++ b/packages/desktop-client/src/components/modals/EditAccess.tsx @@ -8,21 +8,16 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { getUserAccessErrors } from '@actual-app/core/shared/errors'; -import { send } from 'loot-core/platform/client/connection'; -import { getUserAccessErrors } from 'loot-core/shared/errors'; - -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import { popModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { signOut } from '@desktop-client/users/usersSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { FormField, FormLabel } from '#components/forms'; +import { popModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { signOut } from '#users/usersSlice'; type EditUserAccessProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/EditFieldModal.tsx b/packages/desktop-client/src/components/modals/EditFieldModal.tsx index fa788105da..919f744af3 100644 --- a/packages/desktop-client/src/components/modals/EditFieldModal.tsx +++ b/packages/desktop-client/src/components/modals/EditFieldModal.tsx @@ -7,21 +7,19 @@ import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { Input } from '@actual-app/components/input'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { currentDay, dayFromDate } from '@actual-app/core/shared/months'; +import { + amountToInteger, + currencyToInteger, +} from '@actual-app/core/shared/util'; import { format as formatDate, parse as parseDate, parseISO } from 'date-fns'; -import { currentDay, dayFromDate } from 'loot-core/shared/months'; -import { amountToInteger, currencyToInteger } from 'loot-core/shared/util'; - -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { SectionLabel } from '@desktop-client/components/forms'; -import { LabeledCheckbox } from '@desktop-client/components/forms/LabeledCheckbox'; -import { DateSelect } from '@desktop-client/components/select/DateSelect'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { SectionLabel } from '#components/forms'; +import { LabeledCheckbox } from '#components/forms/LabeledCheckbox'; +import { DateSelect } from '#components/select/DateSelect'; +import { useDateFormat } from '#hooks/useDateFormat'; +import type { Modal as ModalType } from '#modals/modalsSlice'; const itemStyle: CSSProperties = { fontSize: 17, diff --git a/packages/desktop-client/src/components/modals/EditRuleModal.tsx b/packages/desktop-client/src/components/modals/EditRuleModal.tsx index e8faaae850..06d0a87a56 100644 --- a/packages/desktop-client/src/components/modals/EditRuleModal.tsx +++ b/packages/desktop-client/src/components/modals/EditRuleModal.tsx @@ -2,15 +2,10 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; import { theme } from '@actual-app/components/theme'; +import type { NewRuleEntity, RuleEntity } from '@actual-app/core/types/models'; -import type { NewRuleEntity, RuleEntity } from 'loot-core/types/models'; - -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { RuleEditor } from '@desktop-client/components/rules/RuleEditor'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { RuleEditor } from '#components/rules/RuleEditor'; type EditRuleModalProps = { rule: RuleEntity | NewRuleEntity; diff --git a/packages/desktop-client/src/components/modals/EditUser.tsx b/packages/desktop-client/src/components/modals/EditUser.tsx index db59f62b15..6a18d833fc 100644 --- a/packages/desktop-client/src/components/modals/EditUser.tsx +++ b/packages/desktop-client/src/components/modals/EditUser.tsx @@ -9,26 +9,17 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { PossibleRoles } from '@actual-app/core/shared/user'; +import type { NewUserEntity, UserEntity } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import { PossibleRoles } from 'loot-core/shared/user'; -import type { NewUserEntity, UserEntity } from 'loot-core/types/models'; - -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { - Checkbox, - FormField, - FormLabel, -} from '@desktop-client/components/forms'; -import { popModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { signOut } from '@desktop-client/users/usersSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { Checkbox, FormField, FormLabel } from '#components/forms'; +import { popModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { signOut } from '#users/usersSlice'; type User = UserEntity; type NewUser = NewUserEntity; diff --git a/packages/desktop-client/src/components/modals/EnvelopeBalanceMenuModal.tsx b/packages/desktop-client/src/components/modals/EnvelopeBalanceMenuModal.tsx index c195d17844..7b8427ec87 100644 --- a/packages/desktop-client/src/components/modals/EnvelopeBalanceMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/EnvelopeBalanceMenuModal.tsx @@ -10,18 +10,18 @@ import { View } from '@actual-app/components/view'; import { BalanceWithCarryover, CarryoverIndicator, -} from '@desktop-client/components/budget/BalanceWithCarryover'; -import { BalanceMenu } from '@desktop-client/components/budget/envelope/BalanceMenu'; +} from '#components/budget/BalanceWithCarryover'; +import { BalanceMenu } from '#components/budget/envelope/BalanceMenu'; import { Modal, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { CellValueText } from '@desktop-client/components/spreadsheet/CellValue'; -import { useCategory } from '@desktop-client/hooks/useCategory'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; +} from '#components/common/Modal'; +import { CellValueText } from '#components/spreadsheet/CellValue'; +import { useCategory } from '#hooks/useCategory'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { envelopeBudget } from '#spreadsheet/bindings'; type EnvelopeBalanceMenuModalProps = Omit< Extract['options'], diff --git a/packages/desktop-client/src/components/modals/EnvelopeBudgetMenuModal.tsx b/packages/desktop-client/src/components/modals/EnvelopeBudgetMenuModal.tsx index 323e825e8b..34826f007a 100644 --- a/packages/desktop-client/src/components/modals/EnvelopeBudgetMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/EnvelopeBudgetMenuModal.tsx @@ -12,25 +12,24 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as Platform from '@actual-app/core/shared/platform'; +import { amountToInteger, integerToAmount } from '@actual-app/core/shared/util'; import { t } from 'i18next'; -import * as Platform from 'loot-core/shared/platform'; -import { amountToInteger, integerToAmount } from 'loot-core/shared/util'; - -import { BudgetMenu } from '@desktop-client/components/budget/envelope/BudgetMenu'; -import { useEnvelopeSheetValue } from '@desktop-client/components/budget/envelope/EnvelopeBudgetComponents'; +import { BudgetMenu } from '#components/budget/envelope/BudgetMenu'; +import { useEnvelopeSheetValue } from '#components/budget/envelope/EnvelopeBudgetComponents'; import { Modal, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { FocusableAmountInput } from '@desktop-client/components/mobile/transactions/FocusableAmountInput'; -import { Notes } from '@desktop-client/components/Notes'; -import { useCategory } from '@desktop-client/hooks/useCategory'; -import { useNotes } from '@desktop-client/hooks/useNotes'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; +} from '#components/common/Modal'; +import { FocusableAmountInput } from '#components/mobile/transactions/FocusableAmountInput'; +import { Notes } from '#components/Notes'; +import { useCategory } from '#hooks/useCategory'; +import { useNotes } from '#hooks/useNotes'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { envelopeBudget } from '#spreadsheet/bindings'; type EnvelopeBudgetMenuModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/EnvelopeBudgetMonthMenuModal.tsx b/packages/desktop-client/src/components/modals/EnvelopeBudgetMonthMenuModal.tsx index d6ef82f623..acc1f1ad65 100644 --- a/packages/desktop-client/src/components/modals/EnvelopeBudgetMonthMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/EnvelopeBudgetMonthMenuModal.tsx @@ -12,21 +12,16 @@ import { styles } from '@actual-app/components/styles'; import type { CSSProperties } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; import { css } from '@emotion/css'; -import * as monthUtils from 'loot-core/shared/months'; - -import { BudgetMonthMenu } from '@desktop-client/components/budget/envelope/budgetsummary/BudgetMonthMenu'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { Notes } from '@desktop-client/components/Notes'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNotes } from '@desktop-client/hooks/useNotes'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { BudgetMonthMenu } from '#components/budget/envelope/budgetsummary/BudgetMonthMenu'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { Notes } from '#components/Notes'; +import { useLocale } from '#hooks/useLocale'; +import { useNotes } from '#hooks/useNotes'; +import { useUndo } from '#hooks/useUndo'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type EnvelopeBudgetMonthMenuModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/EnvelopeBudgetSummaryModal.tsx b/packages/desktop-client/src/components/modals/EnvelopeBudgetSummaryModal.tsx index 7084de45c2..8f9ed8a8e3 100644 --- a/packages/desktop-client/src/components/modals/EnvelopeBudgetSummaryModal.tsx +++ b/packages/desktop-client/src/components/modals/EnvelopeBudgetSummaryModal.tsx @@ -2,31 +2,26 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; import { styles } from '@actual-app/components/styles'; - import { format as formatMonth, prevMonth, sheetForMonth, -} from 'loot-core/shared/months'; -import type { CategoryEntity } from 'loot-core/types/models/category'; +} from '@actual-app/core/shared/months'; +import type { CategoryEntity } from '@actual-app/core/types/models/category'; -import { ToBudgetAmount } from '@desktop-client/components/budget/envelope/budgetsummary/ToBudgetAmount'; -import { TotalsList } from '@desktop-client/components/budget/envelope/budgetsummary/TotalsList'; -import { useEnvelopeSheetValue } from '@desktop-client/components/budget/envelope/EnvelopeBudgetComponents'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useCategoriesById } from '@desktop-client/hooks/useCategories'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { SheetNameProvider } from '@desktop-client/hooks/useSheetName'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { collapseModals, pushModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; +import { ToBudgetAmount } from '#components/budget/envelope/budgetsummary/ToBudgetAmount'; +import { TotalsList } from '#components/budget/envelope/budgetsummary/TotalsList'; +import { useEnvelopeSheetValue } from '#components/budget/envelope/EnvelopeBudgetComponents'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useCategoriesById } from '#hooks/useCategories'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { SheetNameProvider } from '#hooks/useSheetName'; +import { useUndo } from '#hooks/useUndo'; +import { collapseModals, pushModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; +import { envelopeBudget } from '#spreadsheet/bindings'; type EnvelopeBudgetSummaryModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/EnvelopeIncomeBalanceMenuModal.tsx b/packages/desktop-client/src/components/modals/EnvelopeIncomeBalanceMenuModal.tsx index 7a6ed478d8..914aef9557 100644 --- a/packages/desktop-client/src/components/modals/EnvelopeIncomeBalanceMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/EnvelopeIncomeBalanceMenuModal.tsx @@ -11,18 +11,18 @@ import { View } from '@actual-app/components/view'; import { BalanceWithCarryover, CarryoverIndicator, -} from '@desktop-client/components/budget/BalanceWithCarryover'; -import { useEnvelopeSheetValue } from '@desktop-client/components/budget/envelope/EnvelopeBudgetComponents'; +} from '#components/budget/BalanceWithCarryover'; +import { useEnvelopeSheetValue } from '#components/budget/envelope/EnvelopeBudgetComponents'; import { Modal, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { CellValueText } from '@desktop-client/components/spreadsheet/CellValue'; -import { useCategory } from '@desktop-client/hooks/useCategory'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; +} from '#components/common/Modal'; +import { CellValueText } from '#components/spreadsheet/CellValue'; +import { useCategory } from '#hooks/useCategory'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { envelopeBudget } from '#spreadsheet/bindings'; type EnvelopeIncomeBalanceMenuModalProps = Omit< Extract['options'], diff --git a/packages/desktop-client/src/components/modals/EnvelopeToBudgetMenuModal.tsx b/packages/desktop-client/src/components/modals/EnvelopeToBudgetMenuModal.tsx index 885f76f616..63fbe35e32 100644 --- a/packages/desktop-client/src/components/modals/EnvelopeToBudgetMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/EnvelopeToBudgetMenuModal.tsx @@ -4,13 +4,9 @@ import type { CSSProperties } from 'react'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; -import { ToBudgetMenu } from '@desktop-client/components/budget/envelope/budgetsummary/ToBudgetMenu'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { ToBudgetMenu } from '#components/budget/envelope/budgetsummary/ToBudgetMenu'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type EnvelopeToBudgetMenuModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/FixEncryptionKeyModal.tsx b/packages/desktop-client/src/components/modals/FixEncryptionKeyModal.tsx index 2ece7dc07e..e2bb2e8293 100644 --- a/packages/desktop-client/src/components/modals/FixEncryptionKeyModal.tsx +++ b/packages/desktop-client/src/components/modals/FixEncryptionKeyModal.tsx @@ -12,18 +12,17 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { getTestKeyError } from '@actual-app/core/shared/errors'; -import { send } from 'loot-core/platform/client/connection'; -import { getTestKeyError } from 'loot-core/shared/errors'; - -import { Link } from '@desktop-client/components/common/Link'; +import { Link } from '#components/common/Link'; import { Modal, ModalButtons, ModalCloseButton, ModalHeader, -} from '@desktop-client/components/common/Modal'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type FixEncryptionKeyModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/GoCardlessExternalMsgModal.test.tsx b/packages/desktop-client/src/components/modals/GoCardlessExternalMsgModal.test.tsx index c8fcb40a4a..1edaeb331d 100644 --- a/packages/desktop-client/src/components/modals/GoCardlessExternalMsgModal.test.tsx +++ b/packages/desktop-client/src/components/modals/GoCardlessExternalMsgModal.test.tsx @@ -1,15 +1,15 @@ import { render, screen } from '@testing-library/react'; import { vi } from 'vitest'; +import { TestProviders } from '#mocks'; + import { GoCardlessExternalMsgModal } from './GoCardlessExternalMsgModal'; -import { TestProviders } from '@desktop-client/mocks'; - -vi.mock('@desktop-client/hooks/useGlobalPref', () => ({ +vi.mock('#hooks/useGlobalPref', () => ({ useGlobalPref: () => [null], })); -vi.mock('@desktop-client/hooks/useGoCardlessStatus', () => ({ +vi.mock('#hooks/useGoCardlessStatus', () => ({ useGoCardlessStatus: () => ({ configuredGoCardless: true, isLoading: false, diff --git a/packages/desktop-client/src/components/modals/GoCardlessExternalMsgModal.tsx b/packages/desktop-client/src/components/modals/GoCardlessExternalMsgModal.tsx index 8e2779d56b..92402030b6 100644 --- a/packages/desktop-client/src/components/modals/GoCardlessExternalMsgModal.tsx +++ b/packages/desktop-client/src/components/modals/GoCardlessExternalMsgModal.tsx @@ -7,29 +7,24 @@ import { AnimatedLoading } from '@actual-app/components/icons/AnimatedLoading'; import { Paragraph } from '@actual-app/components/paragraph'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import { sendCatch } from 'loot-core/platform/client/connection'; +import { sendCatch } from '@actual-app/core/platform/client/connection'; import type { GoCardlessInstitution, GoCardlessToken, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; -import { Error, Warning } from '@desktop-client/components/alerts'; -import { Autocomplete } from '@desktop-client/components/autocomplete/Autocomplete'; -import { Link } from '@desktop-client/components/common/Link'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import { COUNTRY_OPTIONS } from '@desktop-client/components/util/countries'; -import { getCountryFromBrowser } from '@desktop-client/components/util/localeToCountry'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { useGoCardlessStatus } from '@desktop-client/hooks/useGoCardlessStatus'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { Error, Warning } from '#components/alerts'; +import { Autocomplete } from '#components/autocomplete/Autocomplete'; +import { Link } from '#components/common/Link'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { FormField, FormLabel } from '#components/forms'; +import { COUNTRY_OPTIONS } from '#components/util/countries'; +import { getCountryFromBrowser } from '#components/util/localeToCountry'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { useGoCardlessStatus } from '#hooks/useGoCardlessStatus'; +import { pushModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; function useAvailableBanks(country: string) { const [banks, setBanks] = useState([]); diff --git a/packages/desktop-client/src/components/modals/GoCardlessInitialiseModal.tsx b/packages/desktop-client/src/components/modals/GoCardlessInitialiseModal.tsx index 5bdbbec615..25f6f156e7 100644 --- a/packages/desktop-client/src/components/modals/GoCardlessInitialiseModal.tsx +++ b/packages/desktop-client/src/components/modals/GoCardlessInitialiseModal.tsx @@ -7,20 +7,19 @@ import { InitialFocus } from '@actual-app/components/initial-focus'; import { Input } from '@actual-app/components/input'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { getSecretsError } from '@actual-app/core/shared/errors'; -import { send } from 'loot-core/platform/client/connection'; -import { getSecretsError } from 'loot-core/shared/errors'; - -import { Error } from '@desktop-client/components/alerts'; -import { Link } from '@desktop-client/components/common/Link'; +import { Error } from '#components/alerts'; +import { Link } from '#components/common/Link'; import { Modal, ModalButtons, ModalCloseButton, ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import { FormField, FormLabel } from '#components/forms'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type GoCardlessInitialiseModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/GoalTemplateModal.tsx b/packages/desktop-client/src/components/modals/GoalTemplateModal.tsx index b85d80fc04..254681cb8f 100644 --- a/packages/desktop-client/src/components/modals/GoalTemplateModal.tsx +++ b/packages/desktop-client/src/components/modals/GoalTemplateModal.tsx @@ -4,13 +4,9 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { Link } from '@desktop-client/components/common/Link'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { Field, Row, TableHeader } from '@desktop-client/components/table'; +import { Link } from '#components/common/Link'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { Field, Row, TableHeader } from '#components/table'; export function GoalTemplateModal() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/modals/HoldBufferModal.tsx b/packages/desktop-client/src/components/modals/HoldBufferModal.tsx index 2beb6a6408..815388b801 100644 --- a/packages/desktop-client/src/components/modals/HoldBufferModal.tsx +++ b/packages/desktop-client/src/components/modals/HoldBufferModal.tsx @@ -6,17 +6,13 @@ import { InitialFocus } from '@actual-app/components/initial-focus'; import { styles } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; -import { useEnvelopeSheetValue } from '@desktop-client/components/budget/envelope/EnvelopeBudgetComponents'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { FieldLabel } from '@desktop-client/components/mobile/MobileForms'; -import { AmountInput } from '@desktop-client/components/util/AmountInput'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { envelopeBudget } from '@desktop-client/spreadsheet/bindings'; +import { useEnvelopeSheetValue } from '#components/budget/envelope/EnvelopeBudgetComponents'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { FieldLabel } from '#components/mobile/MobileForms'; +import { AmountInput } from '#components/util/AmountInput'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { envelopeBudget } from '#spreadsheet/bindings'; type HoldBufferModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/ImportTransactionsModal/DateFormatSelect.tsx b/packages/desktop-client/src/components/modals/ImportTransactionsModal/DateFormatSelect.tsx index 03e640c336..ca85bd078f 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactionsModal/DateFormatSelect.tsx +++ b/packages/desktop-client/src/components/modals/ImportTransactionsModal/DateFormatSelect.tsx @@ -4,11 +4,11 @@ import { useTranslation } from 'react-i18next'; import { Select } from '@actual-app/components/select'; import { View } from '@actual-app/components/view'; +import { SectionLabel } from '#components/forms'; + import { dateFormats } from './utils'; import type { DateFormat, FieldMapping, ImportTransaction } from './utils'; -import { SectionLabel } from '@desktop-client/components/forms'; - type DateFormatSelectProps = { transactions: ImportTransaction[]; fieldMappings?: FieldMapping; diff --git a/packages/desktop-client/src/components/modals/ImportTransactionsModal/FieldMappings.tsx b/packages/desktop-client/src/components/modals/ImportTransactionsModal/FieldMappings.tsx index f117616431..4dc59a1a43 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactionsModal/FieldMappings.tsx +++ b/packages/desktop-client/src/components/modals/ImportTransactionsModal/FieldMappings.tsx @@ -4,13 +4,13 @@ import { useTranslation } from 'react-i18next'; import { SpaceBetween } from '@actual-app/components/space-between'; import { View } from '@actual-app/components/view'; +import { SectionLabel } from '#components/forms'; + import { SelectField } from './SelectField'; import { SubLabel } from './SubLabel'; import { stripCsvImportTransaction } from './utils'; import type { FieldMapping, ImportTransaction } from './utils'; -import { SectionLabel } from '@desktop-client/components/forms'; - type FieldMappingsProps = { transactions: ImportTransaction[]; mappings?: FieldMapping; diff --git a/packages/desktop-client/src/components/modals/ImportTransactionsModal/ImportTransactionsModal.tsx b/packages/desktop-client/src/components/modals/ImportTransactionsModal/ImportTransactionsModal.tsx index da0dc86f85..816dc5d9b6 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactionsModal/ImportTransactionsModal.tsx +++ b/packages/desktop-client/src/components/modals/ImportTransactionsModal/ImportTransactionsModal.tsx @@ -16,11 +16,23 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { ParseFileOptions } from '@actual-app/core/server/transactions/import/parse-file'; +import { amountToInteger } from '@actual-app/core/shared/util'; import { useQueryClient } from '@tanstack/react-query'; -import { send } from 'loot-core/platform/client/connection'; -import type { ParseFileOptions } from 'loot-core/server/transactions/import/parse-file'; -import { amountToInteger } from 'loot-core/shared/util'; +import { + useImportPreviewTransactionsMutation, + useImportTransactionsMutation, +} from '#accounts'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { SectionLabel } from '#components/forms'; +import { LabeledCheckbox } from '#components/forms/LabeledCheckbox'; +import { TableHeader, TableWithNavigator } from '#components/table'; +import { useCategories } from '#hooks/useCategories'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useSyncedPrefs } from '#hooks/useSyncedPrefs'; +import { payeeQueries } from '#payees'; import { DateFormatSelect } from './DateFormatSelect'; import { FieldMappings } from './FieldMappings'; @@ -38,26 +50,6 @@ import { } from './utils'; import type { DateFormat, FieldMapping, ImportTransaction } from './utils'; -import { - useImportPreviewTransactionsMutation, - useImportTransactionsMutation, -} from '@desktop-client/accounts'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { SectionLabel } from '@desktop-client/components/forms'; -import { LabeledCheckbox } from '@desktop-client/components/forms/LabeledCheckbox'; -import { - TableHeader, - TableWithNavigator, -} from '@desktop-client/components/table'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useSyncedPrefs } from '@desktop-client/hooks/useSyncedPrefs'; -import { payeeQueries } from '@desktop-client/payees'; - function CheckboxToggle({ id, checked, diff --git a/packages/desktop-client/src/components/modals/ImportTransactionsModal/InOutOption.tsx b/packages/desktop-client/src/components/modals/ImportTransactionsModal/InOutOption.tsx index 8948e738f0..e527da7517 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactionsModal/InOutOption.tsx +++ b/packages/desktop-client/src/components/modals/ImportTransactionsModal/InOutOption.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next'; import { Input } from '@actual-app/components/input'; import { View } from '@actual-app/components/view'; -import { LabeledCheckbox } from '@desktop-client/components/forms/LabeledCheckbox'; +import { LabeledCheckbox } from '#components/forms/LabeledCheckbox'; type InOutOptionProps = { inOutMode: boolean; diff --git a/packages/desktop-client/src/components/modals/ImportTransactionsModal/MultiplierOption.tsx b/packages/desktop-client/src/components/modals/ImportTransactionsModal/MultiplierOption.tsx index 1a7861efa9..b978afe2b9 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactionsModal/MultiplierOption.tsx +++ b/packages/desktop-client/src/components/modals/ImportTransactionsModal/MultiplierOption.tsx @@ -5,7 +5,7 @@ import { Trans, useTranslation } from 'react-i18next'; import { Input } from '@actual-app/components/input'; import { View } from '@actual-app/components/view'; -import { LabeledCheckbox } from '@desktop-client/components/forms/LabeledCheckbox'; +import { LabeledCheckbox } from '#components/forms/LabeledCheckbox'; type MultiplierOptionProps = { multiplierEnabled: boolean; diff --git a/packages/desktop-client/src/components/modals/ImportTransactionsModal/Transaction.tsx b/packages/desktop-client/src/components/modals/ImportTransactionsModal/Transaction.tsx index e32094a15b..d1e341f775 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactionsModal/Transaction.tsx +++ b/packages/desktop-client/src/components/modals/ImportTransactionsModal/Transaction.tsx @@ -8,17 +8,16 @@ import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; +import { amountToCurrency } from '@actual-app/core/shared/util'; +import type { CategoryEntity } from '@actual-app/core/types/models'; -import { amountToCurrency } from 'loot-core/shared/util'; -import type { CategoryEntity } from 'loot-core/types/models'; +import { Checkbox } from '#components/forms'; +import { Field, Row } from '#components/table'; import { ParsedDate } from './ParsedDate'; import { applyFieldMappings, formatDate, parseAmountFields } from './utils'; import type { FieldMapping, ImportTransaction } from './utils'; -import { Checkbox } from '@desktop-client/components/forms'; -import { Field, Row } from '@desktop-client/components/table'; - type TransactionProps = { transaction: ImportTransaction; fieldMappings: FieldMapping; diff --git a/packages/desktop-client/src/components/modals/ImportTransactionsModal/utils.ts b/packages/desktop-client/src/components/modals/ImportTransactionsModal/utils.ts index de63939627..451c1a1faf 100644 --- a/packages/desktop-client/src/components/modals/ImportTransactionsModal/utils.ts +++ b/packages/desktop-client/src/components/modals/ImportTransactionsModal/utils.ts @@ -1,8 +1,7 @@ +import { format as formatDate_ } from '@actual-app/core/shared/months'; +import { looselyParseAmount } from '@actual-app/core/shared/util'; import * as d from 'date-fns'; -import { format as formatDate_ } from 'loot-core/shared/months'; -import { looselyParseAmount } from 'loot-core/shared/util'; - export type DateFormat = | 'yyyy mm dd' | 'yy mm dd' diff --git a/packages/desktop-client/src/components/modals/KeyboardShortcutModal.tsx b/packages/desktop-client/src/components/modals/KeyboardShortcutModal.tsx index 02298b066e..c3c8f29f30 100644 --- a/packages/desktop-client/src/components/modals/KeyboardShortcutModal.tsx +++ b/packages/desktop-client/src/components/modals/KeyboardShortcutModal.tsx @@ -9,15 +9,10 @@ import { styles as baseStyles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as Platform from '@actual-app/core/shared/platform'; -import * as Platform from 'loot-core/shared/platform'; - -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { Search } from '@desktop-client/components/common/Search'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { Search } from '#components/common/Search'; type KeyIconProps = { shortcut: string; diff --git a/packages/desktop-client/src/components/modals/LoadBackupModal.tsx b/packages/desktop-client/src/components/modals/LoadBackupModal.tsx index 0c4d998ebd..a64e01893d 100644 --- a/packages/desktop-client/src/components/modals/LoadBackupModal.tsx +++ b/packages/desktop-client/src/components/modals/LoadBackupModal.tsx @@ -6,23 +6,15 @@ import { Button } from '@actual-app/components/button'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { listen, send } from '@actual-app/core/platform/client/connection'; +import type { Backup } from '@actual-app/core/server/budgetfiles/backups'; -import { listen, send } from 'loot-core/platform/client/connection'; -import type { Backup } from 'loot-core/server/budgetfiles/backups'; - -import { - loadBackup, - makeBackup, -} from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { Cell, Row } from '@desktop-client/components/table'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { loadBackup, makeBackup } from '#budgetfiles/budgetfilesSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { Cell, Row } from '#components/table'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; type BackupTableProps = { backups: Backup[]; diff --git a/packages/desktop-client/src/components/modals/ManageRulesModal.tsx b/packages/desktop-client/src/components/modals/ManageRulesModal.tsx index 9a0de68d7c..23a5837383 100644 --- a/packages/desktop-client/src/components/modals/ManageRulesModal.tsx +++ b/packages/desktop-client/src/components/modals/ManageRulesModal.tsx @@ -2,13 +2,9 @@ import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { ManageRules } from '@desktop-client/components/ManageRules'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { ManageRules } from '#components/ManageRules'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type ManageRulesModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/MergeUnusedPayeesModal.tsx b/packages/desktop-client/src/components/modals/MergeUnusedPayeesModal.tsx index 2960e35618..0294594036 100644 --- a/packages/desktop-client/src/components/modals/MergeUnusedPayeesModal.tsx +++ b/packages/desktop-client/src/components/modals/MergeUnusedPayeesModal.tsx @@ -6,17 +6,16 @@ import { Paragraph } from '@actual-app/components/paragraph'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { PayeeEntity } from '@actual-app/core/types/models'; +import type { TransObjectLiteral } from '@actual-app/core/types/util'; -import { send } from 'loot-core/platform/client/connection'; -import type { PayeeEntity } from 'loot-core/types/models'; -import type { TransObjectLiteral } from 'loot-core/types/util'; - -import { Information } from '@desktop-client/components/alerts'; -import { Modal, ModalButtons } from '@desktop-client/components/common/Modal'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { replaceModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; +import { Information } from '#components/alerts'; +import { Modal, ModalButtons } from '#components/common/Modal'; +import { usePayees } from '#hooks/usePayees'; +import { replaceModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { useDispatch, useSelector } from '#redux'; const highlightStyle = { color: theme.pageTextPositive }; diff --git a/packages/desktop-client/src/components/modals/NewCategoryGroupModal.tsx b/packages/desktop-client/src/components/modals/NewCategoryGroupModal.tsx index 5b98010a59..cc60bf3e50 100644 --- a/packages/desktop-client/src/components/modals/NewCategoryGroupModal.tsx +++ b/packages/desktop-client/src/components/modals/NewCategoryGroupModal.tsx @@ -1,12 +1,9 @@ import { useTranslation } from 'react-i18next'; -import { SingleInputModal } from './SingleInputModal'; +import { ModalHeader, ModalTitle } from '#components/common/Modal'; +import type { Modal } from '#modals/modalsSlice'; -import { - ModalHeader, - ModalTitle, -} from '@desktop-client/components/common/Modal'; -import type { Modal } from '@desktop-client/modals/modalsSlice'; +import { SingleInputModal } from './SingleInputModal'; type NewCategoryGroupModalProps = Extract< Modal, diff --git a/packages/desktop-client/src/components/modals/NewCategoryModal.tsx b/packages/desktop-client/src/components/modals/NewCategoryModal.tsx index 996ab6a59f..577a5ac607 100644 --- a/packages/desktop-client/src/components/modals/NewCategoryModal.tsx +++ b/packages/desktop-client/src/components/modals/NewCategoryModal.tsx @@ -1,12 +1,9 @@ import { useTranslation } from 'react-i18next'; -import { SingleInputModal } from './SingleInputModal'; +import { ModalHeader, ModalTitle } from '#components/common/Modal'; +import type { Modal } from '#modals/modalsSlice'; -import { - ModalHeader, - ModalTitle, -} from '@desktop-client/components/common/Modal'; -import type { Modal } from '@desktop-client/modals/modalsSlice'; +import { SingleInputModal } from './SingleInputModal'; type NewCategoryModalProps = Extract< Modal, diff --git a/packages/desktop-client/src/components/modals/NotesModal.tsx b/packages/desktop-client/src/components/modals/NotesModal.tsx index acdd45779c..99fc18783f 100644 --- a/packages/desktop-client/src/components/modals/NotesModal.tsx +++ b/packages/desktop-client/src/components/modals/NotesModal.tsx @@ -6,14 +6,10 @@ import { Button } from '@actual-app/components/button'; import { SvgCheck } from '@actual-app/components/icons/v2'; import { View } from '@actual-app/components/view'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { Notes } from '@desktop-client/components/Notes'; -import { useNotes } from '@desktop-client/hooks/useNotes'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { Notes } from '#components/Notes'; +import { useNotes } from '#hooks/useNotes'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type NotesModalProps = Extract['options']; diff --git a/packages/desktop-client/src/components/modals/OpenIDEnableModal.tsx b/packages/desktop-client/src/components/modals/OpenIDEnableModal.tsx index 42c3d32765..e914ad82d6 100644 --- a/packages/desktop-client/src/components/modals/OpenIDEnableModal.tsx +++ b/packages/desktop-client/src/components/modals/OpenIDEnableModal.tsx @@ -6,24 +6,19 @@ import { Label } from '@actual-app/components/label'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as asyncStorage from '@actual-app/core/platform/server/asyncStorage'; +import { getOpenIdErrors } from '@actual-app/core/shared/errors'; +import type { OpenIdConfig } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import * as asyncStorage from 'loot-core/platform/server/asyncStorage'; -import { getOpenIdErrors } from 'loot-core/shared/errors'; -import type { OpenIdConfig } from 'loot-core/types/models'; - -import { closeBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { Error } from '@desktop-client/components/alerts'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { OpenIdForm } from '@desktop-client/components/manager/subscribe/OpenIdForm'; -import { useRefreshLoginMethods } from '@desktop-client/components/ServerContext'; -import { popModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { closeBudget } from '#budgetfiles/budgetfilesSlice'; +import { Error } from '#components/alerts'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { OpenIdForm } from '#components/manager/subscribe/OpenIdForm'; +import { useRefreshLoginMethods } from '#components/ServerContext'; +import { popModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; type OpenIDEnableModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/OutOfSyncMigrationsModal.tsx b/packages/desktop-client/src/components/modals/OutOfSyncMigrationsModal.tsx index 60e63c7be9..7efad7a07e 100644 --- a/packages/desktop-client/src/components/modals/OutOfSyncMigrationsModal.tsx +++ b/packages/desktop-client/src/components/modals/OutOfSyncMigrationsModal.tsx @@ -6,14 +6,10 @@ import { Paragraph } from '@actual-app/components/paragraph'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; -import { closeBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { Link } from '@desktop-client/components/common/Link'; -import { - Modal, - ModalHeader, - ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { useDispatch } from '@desktop-client/redux'; +import { closeBudget } from '#budgetfiles/budgetfilesSlice'; +import { Link } from '#components/common/Link'; +import { Modal, ModalHeader, ModalTitle } from '#components/common/Modal'; +import { useDispatch } from '#redux'; export function OutOfSyncMigrationsModal() { const dispatch = useDispatch(); diff --git a/packages/desktop-client/src/components/modals/PasswordEnableModal.tsx b/packages/desktop-client/src/components/modals/PasswordEnableModal.tsx index 0a331db6af..4acb9544e6 100644 --- a/packages/desktop-client/src/components/modals/PasswordEnableModal.tsx +++ b/packages/desktop-client/src/components/modals/PasswordEnableModal.tsx @@ -6,30 +6,25 @@ import { Label } from '@actual-app/components/label'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as asyncStorage from '@actual-app/core/platform/server/asyncStorage'; -import { send } from 'loot-core/platform/client/connection'; -import * as asyncStorage from 'loot-core/platform/server/asyncStorage'; - -import { closeBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { Error as ErrorAlert } from '@desktop-client/components/alerts'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { FormField } from '@desktop-client/components/forms'; +import { closeBudget } from '#budgetfiles/budgetfilesSlice'; +import { Error as ErrorAlert } from '#components/alerts'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { FormField } from '#components/forms'; import { ConfirmOldPasswordForm, ConfirmPasswordForm, -} from '@desktop-client/components/manager/subscribe/ConfirmPasswordForm'; +} from '#components/manager/subscribe/ConfirmPasswordForm'; import { useAvailableLoginMethods, useMultiuserEnabled, useRefreshLoginMethods, -} from '@desktop-client/components/ServerContext'; -import { popModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +} from '#components/ServerContext'; +import { popModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; type PasswordEnableModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/PayeeAutocompleteModal.tsx b/packages/desktop-client/src/components/modals/PayeeAutocompleteModal.tsx index 0d59cad6f0..0f3301390b 100644 --- a/packages/desktop-client/src/components/modals/PayeeAutocompleteModal.tsx +++ b/packages/desktop-client/src/components/modals/PayeeAutocompleteModal.tsx @@ -4,17 +4,17 @@ import { useTranslation } from 'react-i18next'; import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { theme } from '@actual-app/components/theme'; -import { PayeeAutocomplete } from '@desktop-client/components/autocomplete/PayeeAutocomplete'; +import { PayeeAutocomplete } from '#components/autocomplete/PayeeAutocomplete'; import { Modal, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import { useAccounts } from '#hooks/useAccounts'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePayees } from '#hooks/usePayees'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type PayeeAutocompleteModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/PluggyAiInitialiseModal.tsx b/packages/desktop-client/src/components/modals/PluggyAiInitialiseModal.tsx index ff2c01b381..2feb99df92 100644 --- a/packages/desktop-client/src/components/modals/PluggyAiInitialiseModal.tsx +++ b/packages/desktop-client/src/components/modals/PluggyAiInitialiseModal.tsx @@ -7,20 +7,19 @@ import { InitialFocus } from '@actual-app/components/initial-focus'; import { Input } from '@actual-app/components/input'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { getSecretsError } from '@actual-app/core/shared/errors'; -import { send } from 'loot-core/platform/client/connection'; -import { getSecretsError } from 'loot-core/shared/errors'; - -import { Error } from '@desktop-client/components/alerts'; -import { Link } from '@desktop-client/components/common/Link'; +import { Error } from '#components/alerts'; +import { Link } from '#components/common/Link'; import { Modal, ModalButtons, ModalCloseButton, ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import { FormField, FormLabel } from '#components/forms'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type PluggyAiInitialiseProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/ScheduledTransactionMenuModal.tsx b/packages/desktop-client/src/components/modals/ScheduledTransactionMenuModal.tsx index 14aff3a5ff..44398cac1b 100644 --- a/packages/desktop-client/src/components/modals/ScheduledTransactionMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/ScheduledTransactionMenuModal.tsx @@ -7,23 +7,22 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import { format } from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; +import { format } from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; import { extractScheduleConds, scheduleIsRecurring, -} from 'loot-core/shared/schedules'; +} from '@actual-app/core/shared/schedules'; import { Modal, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import { useLocale } from '#hooks/useLocale'; +import { useSchedules } from '#hooks/useSchedules'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type ScheduledTransactionMenuModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/SelectLinkedAccountsModal.tsx b/packages/desktop-client/src/components/modals/SelectLinkedAccountsModal.tsx index 5d90b6e2e8..421c09c7e7 100644 --- a/packages/desktop-client/src/components/modals/SelectLinkedAccountsModal.tsx +++ b/packages/desktop-client/src/components/modals/SelectLinkedAccountsModal.tsx @@ -10,46 +10,35 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; -import { format as formatDate, parseISO } from 'date-fns'; - -import { currentDay, subDays } from 'loot-core/shared/months'; +import { currentDay, subDays } from '@actual-app/core/shared/months'; import type { AccountEntity, SyncServerGoCardlessAccount, SyncServerPluggyAiAccount, SyncServerSimpleFinAccount, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { format as formatDate, parseISO } from 'date-fns'; import { useLinkAccountMutation, useLinkAccountPluggyAiMutation, useLinkAccountSimpleFinMutation, useUnlinkAccountMutation, -} from '@desktop-client/accounts'; -import { Autocomplete } from '@desktop-client/components/autocomplete/Autocomplete'; -import type { AutocompleteItem } from '@desktop-client/components/autocomplete/Autocomplete'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { - Cell, - Field, - Row, - Table, - TableHeader, -} from '@desktop-client/components/table'; -import { AmountInput } from '@desktop-client/components/util/AmountInput'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { closeModal } from '@desktop-client/modals/modalsSlice'; -import { transactions } from '@desktop-client/queries'; -import { liveQuery } from '@desktop-client/queries/liveQuery'; -import { useDispatch } from '@desktop-client/redux'; +} from '#accounts'; +import { Autocomplete } from '#components/autocomplete/Autocomplete'; +import type { AutocompleteItem } from '#components/autocomplete/Autocomplete'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { Cell, Field, Row, Table, TableHeader } from '#components/table'; +import { AmountInput } from '#components/util/AmountInput'; +import { useAccounts } from '#hooks/useAccounts'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useFormat } from '#hooks/useFormat'; +import { closeModal } from '#modals/modalsSlice'; +import { transactions } from '#queries'; +import { liveQuery } from '#queries/liveQuery'; +import { useDispatch } from '#redux'; function useAddBudgetAccountOptions() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/modals/SimpleFinInitialiseModal.tsx b/packages/desktop-client/src/components/modals/SimpleFinInitialiseModal.tsx index 8d7f5a4feb..7d333f9f3d 100644 --- a/packages/desktop-client/src/components/modals/SimpleFinInitialiseModal.tsx +++ b/packages/desktop-client/src/components/modals/SimpleFinInitialiseModal.tsx @@ -6,20 +6,19 @@ import { ButtonWithLoading } from '@actual-app/components/button'; import { Input } from '@actual-app/components/input'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { getSecretsError } from '@actual-app/core/shared/errors'; -import { send } from 'loot-core/platform/client/connection'; -import { getSecretsError } from 'loot-core/shared/errors'; - -import { Error } from '@desktop-client/components/alerts'; -import { Link } from '@desktop-client/components/common/Link'; +import { Error } from '#components/alerts'; +import { Link } from '#components/common/Link'; import { Modal, ModalButtons, ModalCloseButton, ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +} from '#components/common/Modal'; +import { FormField, FormLabel } from '#components/forms'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type SimpleFinInitialiseModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/SingleInputModal.tsx b/packages/desktop-client/src/components/modals/SingleInputModal.tsx index 050a570402..2bc699757b 100644 --- a/packages/desktop-client/src/components/modals/SingleInputModal.tsx +++ b/packages/desktop-client/src/components/modals/SingleInputModal.tsx @@ -9,12 +9,9 @@ import { InitialFocus } from '@actual-app/components/initial-focus'; import { styles } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; -import { - Modal, - ModalCloseButton, -} from '@desktop-client/components/common/Modal'; -import type { ModalHeader } from '@desktop-client/components/common/Modal'; -import { InputField } from '@desktop-client/components/mobile/MobileForms'; +import { Modal, ModalCloseButton } from '#components/common/Modal'; +import type { ModalHeader } from '#components/common/Modal'; +import { InputField } from '#components/mobile/MobileForms'; type SingleInputModalProps = { name: string; diff --git a/packages/desktop-client/src/components/modals/TrackingBalanceMenuModal.tsx b/packages/desktop-client/src/components/modals/TrackingBalanceMenuModal.tsx index 9fd7ae7d69..d147b6a399 100644 --- a/packages/desktop-client/src/components/modals/TrackingBalanceMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/TrackingBalanceMenuModal.tsx @@ -10,18 +10,18 @@ import { View } from '@actual-app/components/view'; import { BalanceWithCarryover, CarryoverIndicator, -} from '@desktop-client/components/budget/BalanceWithCarryover'; -import { BalanceMenu } from '@desktop-client/components/budget/tracking/BalanceMenu'; +} from '#components/budget/BalanceWithCarryover'; +import { BalanceMenu } from '#components/budget/tracking/BalanceMenu'; import { Modal, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { CellValueText } from '@desktop-client/components/spreadsheet/CellValue'; -import { useCategory } from '@desktop-client/hooks/useCategory'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { trackingBudget } from '@desktop-client/spreadsheet/bindings'; +} from '#components/common/Modal'; +import { CellValueText } from '#components/spreadsheet/CellValue'; +import { useCategory } from '#hooks/useCategory'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { trackingBudget } from '#spreadsheet/bindings'; type TrackingBalanceMenuModalProps = Omit< Extract['options'], diff --git a/packages/desktop-client/src/components/modals/TrackingBudgetMenuModal.tsx b/packages/desktop-client/src/components/modals/TrackingBudgetMenuModal.tsx index 6e22d77c1a..453d9e7081 100644 --- a/packages/desktop-client/src/components/modals/TrackingBudgetMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/TrackingBudgetMenuModal.tsx @@ -12,25 +12,24 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as Platform from '@actual-app/core/shared/platform'; +import { amountToInteger, integerToAmount } from '@actual-app/core/shared/util'; import { t } from 'i18next'; -import * as Platform from 'loot-core/shared/platform'; -import { amountToInteger, integerToAmount } from 'loot-core/shared/util'; - -import { BudgetMenu } from '@desktop-client/components/budget/tracking/BudgetMenu'; -import { useTrackingSheetValue } from '@desktop-client/components/budget/tracking/TrackingBudgetComponents'; +import { BudgetMenu } from '#components/budget/tracking/BudgetMenu'; +import { useTrackingSheetValue } from '#components/budget/tracking/TrackingBudgetComponents'; import { Modal, ModalCloseButton, ModalHeader, ModalTitle, -} from '@desktop-client/components/common/Modal'; -import { FocusableAmountInput } from '@desktop-client/components/mobile/transactions/FocusableAmountInput'; -import { Notes } from '@desktop-client/components/Notes'; -import { useCategory } from '@desktop-client/hooks/useCategory'; -import { useNotes } from '@desktop-client/hooks/useNotes'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { trackingBudget } from '@desktop-client/spreadsheet/bindings'; +} from '#components/common/Modal'; +import { FocusableAmountInput } from '#components/mobile/transactions/FocusableAmountInput'; +import { Notes } from '#components/Notes'; +import { useCategory } from '#hooks/useCategory'; +import { useNotes } from '#hooks/useNotes'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { trackingBudget } from '#spreadsheet/bindings'; type TrackingBudgetMenuModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/TrackingBudgetMonthMenuModal.tsx b/packages/desktop-client/src/components/modals/TrackingBudgetMonthMenuModal.tsx index 52e810cf5f..d49deecdff 100644 --- a/packages/desktop-client/src/components/modals/TrackingBudgetMonthMenuModal.tsx +++ b/packages/desktop-client/src/components/modals/TrackingBudgetMonthMenuModal.tsx @@ -12,21 +12,16 @@ import { styles } from '@actual-app/components/styles'; import type { CSSProperties } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; import { css } from '@emotion/css'; -import * as monthUtils from 'loot-core/shared/months'; - -import { BudgetMonthMenu } from '@desktop-client/components/budget/tracking/budgetsummary/BudgetMonthMenu'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { Notes } from '@desktop-client/components/Notes'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNotes } from '@desktop-client/hooks/useNotes'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { BudgetMonthMenu } from '#components/budget/tracking/budgetsummary/BudgetMonthMenu'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { Notes } from '#components/Notes'; +import { useLocale } from '#hooks/useLocale'; +import { useNotes } from '#hooks/useNotes'; +import { useUndo } from '#hooks/useUndo'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type TrackingBudgetMonthMenuModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/TrackingBudgetSummaryModal.tsx b/packages/desktop-client/src/components/modals/TrackingBudgetSummaryModal.tsx index 543782b094..8a2e79d7da 100644 --- a/packages/desktop-client/src/components/modals/TrackingBudgetSummaryModal.tsx +++ b/packages/desktop-client/src/components/modals/TrackingBudgetSummaryModal.tsx @@ -3,20 +3,15 @@ import { useTranslation } from 'react-i18next'; import { SpaceBetween } from '@actual-app/components/space-between'; import { styles } from '@actual-app/components/styles'; +import { sheetForMonth } from '@actual-app/core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; -import { sheetForMonth } from 'loot-core/shared/months'; -import * as monthUtils from 'loot-core/shared/months'; - -import { ExpenseTotal } from '@desktop-client/components/budget/tracking/budgetsummary/ExpenseTotal'; -import { IncomeTotal } from '@desktop-client/components/budget/tracking/budgetsummary/IncomeTotal'; -import { Saved } from '@desktop-client/components/budget/tracking/budgetsummary/Saved'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { SheetNameProvider } from '@desktop-client/hooks/useSheetName'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; +import { ExpenseTotal } from '#components/budget/tracking/budgetsummary/ExpenseTotal'; +import { IncomeTotal } from '#components/budget/tracking/budgetsummary/IncomeTotal'; +import { Saved } from '#components/budget/tracking/budgetsummary/Saved'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { SheetNameProvider } from '#hooks/useSheetName'; +import type { Modal as ModalType } from '#modals/modalsSlice'; type TrackingBudgetSummaryModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/TransferModal.tsx b/packages/desktop-client/src/components/modals/TransferModal.tsx index 25420ccfcc..7b0140e57f 100644 --- a/packages/desktop-client/src/components/modals/TransferModal.tsx +++ b/packages/desktop-client/src/components/modals/TransferModal.tsx @@ -5,28 +5,20 @@ import { Button } from '@actual-app/components/button'; import { InitialFocus } from '@actual-app/components/initial-focus'; import { styles } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; - -import type { IntegerAmount } from 'loot-core/shared/util'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; import { addToBeBudgetedGroup, removeCategoriesFromGroups, -} from '@desktop-client/components/budget/util'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { - FieldLabel, - TapField, -} from '@desktop-client/components/mobile/MobileForms'; -import { AmountInput } from '@desktop-client/components/util/AmountInput'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +} from '#components/budget/util'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { FieldLabel, TapField } from '#components/mobile/MobileForms'; +import { AmountInput } from '#components/util/AmountInput'; +import { useCategories } from '#hooks/useCategories'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { pushModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; type TransferModalProps = Extract['options']; diff --git a/packages/desktop-client/src/components/modals/TransferOwnership.tsx b/packages/desktop-client/src/components/modals/TransferOwnership.tsx index 070e8ee3d5..8cdd856a0c 100644 --- a/packages/desktop-client/src/components/modals/TransferOwnership.tsx +++ b/packages/desktop-client/src/components/modals/TransferOwnership.tsx @@ -8,25 +8,20 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { getUserAccessErrors } from '@actual-app/core/shared/errors'; +import type { Budget } from '@actual-app/core/types/budget'; +import type { RemoteFile, SyncedLocalFile } from '@actual-app/core/types/file'; +import type { Handlers } from '@actual-app/core/types/handlers'; -import { send } from 'loot-core/platform/client/connection'; -import { getUserAccessErrors } from 'loot-core/shared/errors'; -import type { Budget } from 'loot-core/types/budget'; -import type { RemoteFile, SyncedLocalFile } from 'loot-core/types/file'; -import type { Handlers } from 'loot-core/types/handlers'; - -import { closeAndLoadBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { popModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; +import { closeAndLoadBudget } from '#budgetfiles/budgetfilesSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { FormField, FormLabel } from '#components/forms'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { popModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch, useSelector } from '#redux'; type TransferOwnershipProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/UnmigrateBudgetAutomationsModal.tsx b/packages/desktop-client/src/components/modals/UnmigrateBudgetAutomationsModal.tsx index 012937e481..dae373e8c2 100644 --- a/packages/desktop-client/src/components/modals/UnmigrateBudgetAutomationsModal.tsx +++ b/packages/desktop-client/src/components/modals/UnmigrateBudgetAutomationsModal.tsx @@ -5,19 +5,14 @@ import { Button } from '@actual-app/components/button'; import { AnimatedLoading } from '@actual-app/components/icons/AnimatedLoading'; import { SpaceBetween } from '@actual-app/components/space-between'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { Template } from '@actual-app/core/types/models/templates'; -import { send } from 'loot-core/platform/client/connection'; -import type { Template } from 'loot-core/types/models/templates'; - -import { Link } from '@desktop-client/components/common/Link'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { Notes } from '@desktop-client/components/Notes'; -import { useCategory } from '@desktop-client/hooks/useCategory'; -import { useNotes } from '@desktop-client/hooks/useNotes'; +import { Link } from '#components/common/Link'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { Notes } from '#components/Notes'; +import { useCategory } from '#hooks/useCategory'; +import { useNotes } from '#hooks/useNotes'; export function UnmigrateBudgetAutomationsModal({ categoryId, diff --git a/packages/desktop-client/src/components/modals/manager/ConfirmChangeDocumentDir.tsx b/packages/desktop-client/src/components/modals/manager/ConfirmChangeDocumentDir.tsx index 7a682819b4..a4a7d6f488 100644 --- a/packages/desktop-client/src/components/modals/manager/ConfirmChangeDocumentDir.tsx +++ b/packages/desktop-client/src/components/modals/manager/ConfirmChangeDocumentDir.tsx @@ -7,16 +7,12 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { Information } from '@desktop-client/components/alerts'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { Checkbox } from '@desktop-client/components/forms'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { Information } from '#components/alerts'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { Checkbox } from '#components/forms'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; function DirectoryDisplay({ directory }: { directory: string }) { return ( diff --git a/packages/desktop-client/src/components/modals/manager/DeleteFileModal.tsx b/packages/desktop-client/src/components/modals/manager/DeleteFileModal.tsx index 1891485d82..c516e17dad 100644 --- a/packages/desktop-client/src/components/modals/manager/DeleteFileModal.tsx +++ b/packages/desktop-client/src/components/modals/manager/DeleteFileModal.tsx @@ -6,15 +6,11 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { deleteBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useSyncServerStatus } from '@desktop-client/hooks/useSyncServerStatus'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; +import { deleteBudget } from '#budgetfiles/budgetfilesSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useSyncServerStatus } from '#hooks/useSyncServerStatus'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { useDispatch, useSelector } from '#redux'; type DeleteFileModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/manager/DuplicateFileModal.tsx b/packages/desktop-client/src/components/modals/manager/DuplicateFileModal.tsx index 9c957d6270..c8047d6097 100644 --- a/packages/desktop-client/src/components/modals/manager/DuplicateFileModal.tsx +++ b/packages/desktop-client/src/components/modals/manager/DuplicateFileModal.tsx @@ -9,19 +9,18 @@ import { Input } from '@actual-app/components/input'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; -import { send } from 'loot-core/platform/client/connection'; - -import { duplicateBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; +import { duplicateBudget } from '#budgetfiles/budgetfilesSlice'; import { Modal, ModalButtons, ModalCloseButton, ModalHeader, -} from '@desktop-client/components/common/Modal'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; +} from '#components/common/Modal'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; type DuplicateFileModalProps = Extract< ModalType, diff --git a/packages/desktop-client/src/components/modals/manager/FilesSettingsModal.tsx b/packages/desktop-client/src/components/modals/manager/FilesSettingsModal.tsx index e338a0487a..d7b7e9a316 100644 --- a/packages/desktop-client/src/components/modals/manager/FilesSettingsModal.tsx +++ b/packages/desktop-client/src/components/modals/manager/FilesSettingsModal.tsx @@ -8,15 +8,11 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { loadAllFiles } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { loadAllFiles } from '#budgetfiles/budgetfilesSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; function FileLocationSettings() { const [documentDir, _setDocumentDirPref] = useGlobalPref('documentDir'); diff --git a/packages/desktop-client/src/components/modals/manager/ImportActualModal.tsx b/packages/desktop-client/src/components/modals/manager/ImportActualModal.tsx index 6f0df26063..d838738a80 100644 --- a/packages/desktop-client/src/components/modals/manager/ImportActualModal.tsx +++ b/packages/desktop-client/src/components/modals/manager/ImportActualModal.tsx @@ -9,14 +9,10 @@ import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { importBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useDispatch } from '@desktop-client/redux'; +import { importBudget } from '#budgetfiles/budgetfilesSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useNavigate } from '#hooks/useNavigate'; +import { useDispatch } from '#redux'; export function ImportActualModal() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/modals/manager/ImportModal.tsx b/packages/desktop-client/src/components/modals/manager/ImportModal.tsx index ed44955fe2..3424b587c7 100644 --- a/packages/desktop-client/src/components/modals/manager/ImportModal.tsx +++ b/packages/desktop-client/src/components/modals/manager/ImportModal.tsx @@ -8,13 +8,9 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; export function ImportModal() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/modals/manager/ImportYNAB4Modal.tsx b/packages/desktop-client/src/components/modals/manager/ImportYNAB4Modal.tsx index 4df148241d..c794df3565 100644 --- a/packages/desktop-client/src/components/modals/manager/ImportYNAB4Modal.tsx +++ b/packages/desktop-client/src/components/modals/manager/ImportYNAB4Modal.tsx @@ -9,14 +9,10 @@ import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { importBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useDispatch } from '@desktop-client/redux'; +import { importBudget } from '#budgetfiles/budgetfilesSlice'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useNavigate } from '#hooks/useNavigate'; +import { useDispatch } from '#redux'; function getErrorMessage(error: string): string { switch (error) { diff --git a/packages/desktop-client/src/components/modals/manager/ImportYNAB5Modal.tsx b/packages/desktop-client/src/components/modals/manager/ImportYNAB5Modal.tsx index 6f7dfa8069..87a43da7db 100644 --- a/packages/desktop-client/src/components/modals/manager/ImportYNAB5Modal.tsx +++ b/packages/desktop-client/src/components/modals/manager/ImportYNAB5Modal.tsx @@ -9,15 +9,11 @@ import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { importBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { Link } from '@desktop-client/components/common/Link'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useDispatch } from '@desktop-client/redux'; +import { importBudget } from '#budgetfiles/budgetfilesSlice'; +import { Link } from '#components/common/Link'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useNavigate } from '#hooks/useNavigate'; +import { useDispatch } from '#redux'; export function ImportYNAB5Modal() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/payees/CategoryLearning.tsx b/packages/desktop-client/src/components/payees/CategoryLearning.tsx index 4a9608d6a0..f1d36d29ce 100644 --- a/packages/desktop-client/src/components/payees/CategoryLearning.tsx +++ b/packages/desktop-client/src/components/payees/CategoryLearning.tsx @@ -4,13 +4,9 @@ import { Trans, useTranslation } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { Paragraph } from '@actual-app/components/paragraph'; -import { Link } from '@desktop-client/components/common/Link'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; +import { Link } from '#components/common/Link'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useSyncedPref } from '#hooks/useSyncedPref'; export function CategoryLearning() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/payees/ManagePayees.tsx b/packages/desktop-client/src/components/payees/ManagePayees.tsx index 40e38d5748..0224178b0f 100644 --- a/packages/desktop-client/src/components/payees/ManagePayees.tsx +++ b/packages/desktop-client/src/components/payees/ManagePayees.tsx @@ -8,30 +8,25 @@ import { Popover } from '@actual-app/components/popover'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { getNormalisedString } from '@actual-app/core/shared/normalisation'; +import { groupById } from '@actual-app/core/shared/util'; +import type { Diff } from '@actual-app/core/shared/util'; +import type { PayeeEntity } from '@actual-app/core/types/models'; import memoizeOne from 'memoize-one'; -import { getNormalisedString } from 'loot-core/shared/normalisation'; -import { groupById } from 'loot-core/shared/util'; -import type { Diff } from 'loot-core/shared/util'; -import type { PayeeEntity } from 'loot-core/types/models'; - -import { PayeeMenu } from './PayeeMenu'; -import { PayeeTable } from './PayeeTable'; - -import { Search } from '@desktop-client/components/common/Search'; -import { - Cell, - SelectCell, - TableHeader, -} from '@desktop-client/components/table'; +import { Search } from '#components/common/Search'; +import { Cell, SelectCell, TableHeader } from '#components/table'; import { SelectedProvider, useSelected, useSelectedDispatch, useSelectedItems, -} from '@desktop-client/hooks/useSelected'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +} from '#hooks/useSelected'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; + +import { PayeeMenu } from './PayeeMenu'; +import { PayeeTable } from './PayeeTable'; const getPayeesById = memoizeOne((payees: PayeeEntity[]) => groupById(payees)); diff --git a/packages/desktop-client/src/components/payees/ManagePayeesPage.tsx b/packages/desktop-client/src/components/payees/ManagePayeesPage.tsx index a6d94165b6..742aafbde5 100644 --- a/packages/desktop-client/src/components/payees/ManagePayeesPage.tsx +++ b/packages/desktop-client/src/components/payees/ManagePayeesPage.tsx @@ -2,12 +2,12 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; import { useLocation } from 'react-router'; -import type { PayeeEntity } from 'loot-core/types/models'; +import type { PayeeEntity } from '@actual-app/core/types/models'; + +import { Page } from '#components/Page'; import { ManagePayeesWithData } from './ManagePayeesWithData'; -import { Page } from '@desktop-client/components/Page'; - export function ManagePayeesPage() { const { t } = useTranslation(); const location = useLocation(); diff --git a/packages/desktop-client/src/components/payees/ManagePayeesWithData.tsx b/packages/desktop-client/src/components/payees/ManagePayeesWithData.tsx index de7186622b..3e53fd7789 100644 --- a/packages/desktop-client/src/components/payees/ManagePayeesWithData.tsx +++ b/packages/desktop-client/src/components/payees/ManagePayeesWithData.tsx @@ -1,23 +1,22 @@ import React, { useEffect } from 'react'; +import { listen, send } from '@actual-app/core/platform/client/connection'; +import * as undo from '@actual-app/core/platform/client/undo'; +import type { UndoState } from '@actual-app/core/server/undo'; +import { applyChanges } from '@actual-app/core/shared/util'; +import type { Diff } from '@actual-app/core/shared/util'; +import type { NewRuleEntity, PayeeEntity } from '@actual-app/core/types/models'; import { useQueryClient } from '@tanstack/react-query'; -import { listen, send } from 'loot-core/platform/client/connection'; -import * as undo from 'loot-core/platform/client/undo'; -import type { UndoState } from 'loot-core/server/undo'; -import { applyChanges } from 'loot-core/shared/util'; -import type { Diff } from 'loot-core/shared/util'; -import type { NewRuleEntity, PayeeEntity } from 'loot-core/types/models'; +import { useOrphanedPayees } from '#hooks/useOrphanedPayees'; +import { usePayeeRuleCounts } from '#hooks/usePayeeRuleCounts'; +import { usePayees } from '#hooks/usePayees'; +import { pushModal } from '#modals/modalsSlice'; +import { payeeQueries } from '#payees'; +import { useDispatch } from '#redux'; import { ManagePayees } from './ManagePayees'; -import { useOrphanedPayees } from '@desktop-client/hooks/useOrphanedPayees'; -import { usePayeeRuleCounts } from '@desktop-client/hooks/usePayeeRuleCounts'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { payeeQueries } from '@desktop-client/payees'; -import { useDispatch } from '@desktop-client/redux'; - type ManagePayeesWithDataProps = { initialSelectedIds: string[]; }; diff --git a/packages/desktop-client/src/components/payees/PayeeMenu.tsx b/packages/desktop-client/src/components/payees/PayeeMenu.tsx index 1b8a88b500..0993fa30a1 100644 --- a/packages/desktop-client/src/components/payees/PayeeMenu.tsx +++ b/packages/desktop-client/src/components/payees/PayeeMenu.tsx @@ -6,10 +6,9 @@ import { Menu } from '@actual-app/components/menu'; import type { MenuItem } from '@actual-app/components/menu'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { PayeeEntity } from '@actual-app/core/types/models'; -import type { PayeeEntity } from 'loot-core/types/models'; - -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; +import { useSyncedPref } from '#hooks/useSyncedPref'; type PayeeMenuProps = { payeesById: Record; diff --git a/packages/desktop-client/src/components/payees/PayeeTable.tsx b/packages/desktop-client/src/components/payees/PayeeTable.tsx index 084dbb26fd..4f31d573e5 100644 --- a/packages/desktop-client/src/components/payees/PayeeTable.tsx +++ b/packages/desktop-client/src/components/payees/PayeeTable.tsx @@ -10,14 +10,13 @@ import type { ComponentProps, ComponentRef } from 'react'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { PayeeEntity } from '@actual-app/core/types/models'; -import type { PayeeEntity } from 'loot-core/types/models'; +import { Table, useTableNavigator } from '#components/table'; +import { useSelectedItems } from '#hooks/useSelected'; import { PayeeTableRow } from './PayeeTableRow'; -import { Table, useTableNavigator } from '@desktop-client/components/table'; -import { useSelectedItems } from '@desktop-client/hooks/useSelected'; - // Table items require an ID to work, it's optional in the loot-core // model so would need to verify accuracy of that before changing there type PayeeWithId = PayeeEntity & Required>; diff --git a/packages/desktop-client/src/components/payees/PayeeTableRow.tsx b/packages/desktop-client/src/components/payees/PayeeTableRow.tsx index 19549eb3b6..dbf8e252ac 100644 --- a/packages/desktop-client/src/components/payees/PayeeTableRow.tsx +++ b/packages/desktop-client/src/components/payees/PayeeTableRow.tsx @@ -12,10 +12,7 @@ import { Menu } from '@actual-app/components/menu'; import { Popover } from '@actual-app/components/popover'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; - -import type { PayeeEntity } from 'loot-core/types/models'; - -import { PayeeRuleCountLabel } from './PayeeRuleCountLabel'; +import type { PayeeEntity } from '@actual-app/core/types/models'; import { Cell, @@ -24,13 +21,12 @@ import { InputCell, Row, SelectCell, -} from '@desktop-client/components/table'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { - useSelectedDispatch, - useSelectedItems, -} from '@desktop-client/hooks/useSelected'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; +} from '#components/table'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { useSelectedDispatch, useSelectedItems } from '#hooks/useSelected'; +import { useSyncedPref } from '#hooks/useSyncedPref'; + +import { PayeeRuleCountLabel } from './PayeeRuleCountLabel'; type RuleButtonProps = { ruleCount: number; diff --git a/packages/desktop-client/src/components/reports/AccountSelector.tsx b/packages/desktop-client/src/components/reports/AccountSelector.tsx index f1a05b0a90..265efb77bc 100644 --- a/packages/desktop-client/src/components/reports/AccountSelector.tsx +++ b/packages/desktop-client/src/components/reports/AccountSelector.tsx @@ -10,13 +10,12 @@ import { } from '@actual-app/components/icons/v2'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; +import type { AccountEntity } from '@actual-app/core/types/models'; -import type { AccountEntity } from 'loot-core/types/models'; +import { Checkbox } from '#components/forms'; import { GraphButton } from './GraphButton'; -import { Checkbox } from '@desktop-client/components/forms'; - type AccountSelectorProps = { accounts: AccountEntity[]; selectedAccountIds: string[]; diff --git a/packages/desktop-client/src/components/reports/CategorySelector.test.tsx b/packages/desktop-client/src/components/reports/CategorySelector.test.tsx index 445dcf5aef..1d2c25218c 100644 --- a/packages/desktop-client/src/components/reports/CategorySelector.test.tsx +++ b/packages/desktop-client/src/components/reports/CategorySelector.test.tsx @@ -1,12 +1,11 @@ import React from 'react'; -import { render, screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; - import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; import { CategorySelector } from './CategorySelector'; diff --git a/packages/desktop-client/src/components/reports/CategorySelector.tsx b/packages/desktop-client/src/components/reports/CategorySelector.tsx index 9656399cf9..8664c1ff2e 100644 --- a/packages/desktop-client/src/components/reports/CategorySelector.tsx +++ b/packages/desktop-client/src/components/reports/CategorySelector.tsx @@ -11,16 +11,15 @@ import { } from '@actual-app/components/icons/v2'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; - import type { CategoryEntity, CategoryGroupEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import { Checkbox } from '#components/forms'; import { GraphButton } from './GraphButton'; -import { Checkbox } from '@desktop-client/components/forms'; - type CategorySelectorProps = { categoryGroups: Array; selectedCategories: CategoryEntity[]; diff --git a/packages/desktop-client/src/components/reports/Change.test.tsx b/packages/desktop-client/src/components/reports/Change.test.tsx index 2311c9e881..aace98db95 100644 --- a/packages/desktop-client/src/components/reports/Change.test.tsx +++ b/packages/desktop-client/src/components/reports/Change.test.tsx @@ -3,9 +3,9 @@ import React from 'react'; import { theme } from '@actual-app/components/theme'; import { render, screen } from '@testing-library/react'; -import { Change } from './Change'; +import { TestProviders } from '#mocks'; -import { TestProviders } from '@desktop-client/mocks'; +import { Change } from './Change'; describe('Change', () => { it('renders a positive amount with a plus sign and positive color', () => { diff --git a/packages/desktop-client/src/components/reports/Change.tsx b/packages/desktop-client/src/components/reports/Change.tsx index 9374443ed3..65b21d8347 100644 --- a/packages/desktop-client/src/components/reports/Change.tsx +++ b/packages/desktop-client/src/components/reports/Change.tsx @@ -5,8 +5,8 @@ import { Block } from '@actual-app/components/block'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { useFormat } from '@desktop-client/hooks/useFormat'; +import { FinancialText } from '#components/FinancialText'; +import { useFormat } from '#hooks/useFormat'; export function Change({ amount, diff --git a/packages/desktop-client/src/components/reports/ChooseGraph.tsx b/packages/desktop-client/src/components/reports/ChooseGraph.tsx index 5778d60eb2..64784ee135 100644 --- a/packages/desktop-client/src/components/reports/ChooseGraph.tsx +++ b/packages/desktop-client/src/components/reports/ChooseGraph.tsx @@ -2,8 +2,10 @@ import React, { useRef } from 'react'; import type { CSSProperties, UIEvent } from 'react'; import { styles } from '@actual-app/components/styles'; - -import type { DataEntity, RuleConditionEntity } from 'loot-core/types/models'; +import type { + DataEntity, + RuleConditionEntity, +} from '@actual-app/core/types/models'; import { AreaGraph } from './graphs/AreaGraph'; import { BarGraph } from './graphs/BarGraph'; diff --git a/packages/desktop-client/src/components/reports/DashboardHeader.tsx b/packages/desktop-client/src/components/reports/DashboardHeader.tsx index 612c4739b5..6095481ed2 100644 --- a/packages/desktop-client/src/components/reports/DashboardHeader.tsx +++ b/packages/desktop-client/src/components/reports/DashboardHeader.tsx @@ -7,10 +7,9 @@ import { InitialFocus } from '@actual-app/components/initial-focus'; import { Input } from '@actual-app/components/input'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { DashboardPageEntity } from '@actual-app/core/types/models'; -import type { DashboardPageEntity } from 'loot-core/types/models'; - -import { useRenameDashboardPageMutation } from '@desktop-client/reports/mutations'; +import { useRenameDashboardPageMutation } from '#reports/mutations'; type DashboardHeaderProps = { dashboard: DashboardPageEntity; diff --git a/packages/desktop-client/src/components/reports/DashboardSelector.tsx b/packages/desktop-client/src/components/reports/DashboardSelector.tsx index dd4d293be0..2755bb76a6 100644 --- a/packages/desktop-client/src/components/reports/DashboardSelector.tsx +++ b/packages/desktop-client/src/components/reports/DashboardSelector.tsx @@ -7,11 +7,10 @@ import { SvgExpandArrow } from '@actual-app/components/icons/v0'; import { Menu } from '@actual-app/components/menu'; import { Popover } from '@actual-app/components/popover'; import { View } from '@actual-app/components/view'; +import type { DashboardPageEntity } from '@actual-app/core/types/models'; -import type { DashboardPageEntity } from 'loot-core/types/models'; - -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useCreateDashboardPageMutation } from '@desktop-client/reports/mutations'; +import { useNavigate } from '#hooks/useNavigate'; +import { useCreateDashboardPageMutation } from '#reports/mutations'; type DashboardSelectorProps = { dashboards: readonly DashboardPageEntity[]; diff --git a/packages/desktop-client/src/components/reports/DateRange.tsx b/packages/desktop-client/src/components/reports/DateRange.tsx index c30149c6b5..a1eddcc1ce 100644 --- a/packages/desktop-client/src/components/reports/DateRange.tsx +++ b/packages/desktop-client/src/components/reports/DateRange.tsx @@ -6,11 +6,10 @@ import { Block } from '@actual-app/components/block'; import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; +import * as monthUtils from '@actual-app/core/shared/months'; import * as d from 'date-fns'; -import * as monthUtils from 'loot-core/shared/months'; - -import { useLocale } from '@desktop-client/hooks/useLocale'; +import { useLocale } from '#hooks/useLocale'; type DateRangeProps = { start: string; diff --git a/packages/desktop-client/src/components/reports/FormulaResult.tsx b/packages/desktop-client/src/components/reports/FormulaResult.tsx index b3ce1295f5..1dfc462e81 100644 --- a/packages/desktop-client/src/components/reports/FormulaResult.tsx +++ b/packages/desktop-client/src/components/reports/FormulaResult.tsx @@ -9,17 +9,16 @@ import type { Ref, RefObject } from 'react'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { amountToInteger } from '@actual-app/core/shared/util'; import debounce from 'lodash/debounce'; -import { amountToInteger } from 'loot-core/shared/util'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { useFormat } from '#hooks/useFormat'; +import { useMergedRefs } from '#hooks/useMergedRefs'; +import { useResizeObserver } from '#hooks/useResizeObserver'; import { LoadingIndicator } from './LoadingIndicator'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useMergedRefs } from '@desktop-client/hooks/useMergedRefs'; -import { useResizeObserver } from '@desktop-client/hooks/useResizeObserver'; - const FONT_SIZE_SCALE_FACTOR = 1.6; const CONTAINER_MARGIN = 8; diff --git a/packages/desktop-client/src/components/reports/Header.tsx b/packages/desktop-client/src/components/reports/Header.tsx index f94116f099..4242d3ef73 100644 --- a/packages/desktop-client/src/components/reports/Header.tsx +++ b/packages/desktop-client/src/components/reports/Header.tsx @@ -6,10 +6,16 @@ import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { Select } from '@actual-app/components/select'; import { SpaceBetween } from '@actual-app/components/space-between'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { + RuleConditionEntity, + TimeFrame, +} from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; -import * as monthUtils from 'loot-core/shared/months'; -import type { RuleConditionEntity, TimeFrame } from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +import { AppliedFilters } from '#components/filters/AppliedFilters'; +import { FilterButton } from '#components/filters/FiltersMenu'; +import { useLocale } from '#hooks/useLocale'; import { getLiveRange } from './getLiveRange'; import { @@ -20,10 +26,6 @@ import { validateStart, } from './reportRanges'; -import { AppliedFilters } from '@desktop-client/components/filters/AppliedFilters'; -import { FilterButton } from '@desktop-client/components/filters/FiltersMenu'; -import { useLocale } from '@desktop-client/hooks/useLocale'; - type HeaderProps = { start: TimeFrame['start']; end: TimeFrame['end']; diff --git a/packages/desktop-client/src/components/reports/Overview.tsx b/packages/desktop-client/src/components/reports/Overview.tsx index 1fc3f01940..369b96e26b 100644 --- a/packages/desktop-client/src/components/reports/Overview.tsx +++ b/packages/desktop-client/src/components/reports/Overview.tsx @@ -14,17 +14,46 @@ import { Menu } from '@actual-app/components/menu'; import { Popover } from '@actual-app/components/popover'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - import type { CustomReportWidget, DashboardPageEntity, DashboardWidgetEntity, ExportImportDashboard, MarkdownWidget, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import { MOBILE_NAV_HEIGHT } from '#components/mobile/MobileNavTabs'; +import { MobilePageHeader, Page } from '#components/Page'; +import { useAccounts } from '#hooks/useAccounts'; +import { + useDashboardPages, + useDashboardPageWidgets, +} from '#hooks/useDashboardPages'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { useNavigate } from '#hooks/useNavigate'; +import { useReports } from '#hooks/useReports'; +import { useResizeObserver } from '#hooks/useResizeObserver'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { useUndo } from '#hooks/useUndo'; +import { + addNotification, + removeNotification, +} from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { + useAddDashboardWidgetMutation, + useCopyDashboardWidgetMutation, + useDeleteDashboardPageMutation, + useImportDashboardPageMutation, + useRemoveDashboardWidgetMutation, + useResetDashboardPageMutation, + useUpdateDashboardWidgetMutation, + useUpdateDashboardWidgetsMutation, +} from '#reports/mutations'; import { NON_DRAGGABLE_AREA_CLASS_NAME } from './constants'; import { DashboardHeader } from './DashboardHeader'; +import './overview.scss'; import { DashboardSelector } from './DashboardSelector'; import { LoadingIndicator } from './LoadingIndicator'; import { AgeOfMoneyCard } from './reports/AgeOfMoneyCard'; @@ -38,39 +67,9 @@ import { MarkdownCard } from './reports/MarkdownCard'; import { MissingReportCard } from './reports/MissingReportCard'; import { NetWorthCard } from './reports/NetWorthCard'; import { SankeyCard } from './reports/SankeyCard'; -import './overview.scss'; import { SpendingCard } from './reports/SpendingCard'; import { SummaryCard } from './reports/SummaryCard'; -import { MOBILE_NAV_HEIGHT } from '@desktop-client/components/mobile/MobileNavTabs'; -import { MobilePageHeader, Page } from '@desktop-client/components/Page'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { - useDashboardPages, - useDashboardPageWidgets, -} from '@desktop-client/hooks/useDashboardPages'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useReports } from '@desktop-client/hooks/useReports'; -import { useResizeObserver } from '@desktop-client/hooks/useResizeObserver'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { useUndo } from '@desktop-client/hooks/useUndo'; -import { - addNotification, - removeNotification, -} from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { - useAddDashboardWidgetMutation, - useCopyDashboardWidgetMutation, - useDeleteDashboardPageMutation, - useImportDashboardPageMutation, - useRemoveDashboardWidgetMutation, - useResetDashboardPageMutation, - useUpdateDashboardWidgetMutation, - useUpdateDashboardWidgetsMutation, -} from '@desktop-client/reports/mutations'; - function isCustomReportWidget( widget: DashboardWidgetEntity, ): widget is CustomReportWidget { diff --git a/packages/desktop-client/src/components/reports/ReportCard.tsx b/packages/desktop-client/src/components/reports/ReportCard.tsx index 64ebeb6784..9e91be94eb 100644 --- a/packages/desktop-client/src/components/reports/ReportCard.tsx +++ b/packages/desktop-client/src/components/reports/ReportCard.tsx @@ -10,11 +10,11 @@ import { Popover } from '@actual-app/components/popover'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { NON_DRAGGABLE_AREA_CLASS_NAME } from './constants'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { useIsInViewport } from '#hooks/useIsInViewport'; +import { useNavigate } from '#hooks/useNavigate'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { useIsInViewport } from '@desktop-client/hooks/useIsInViewport'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +import { NON_DRAGGABLE_AREA_CLASS_NAME } from './constants'; type ReportCardProps = { isEditing?: boolean; diff --git a/packages/desktop-client/src/components/reports/ReportOptions.ts b/packages/desktop-client/src/components/reports/ReportOptions.ts index acf0694297..6b35ca9742 100644 --- a/packages/desktop-client/src/components/reports/ReportOptions.ts +++ b/packages/desktop-client/src/components/reports/ReportOptions.ts @@ -1,12 +1,11 @@ -import { t } from 'i18next'; - -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { CategoryEntity, CategoryGroupEntity, CustomReportEntity, sortByOpType, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { t } from 'i18next'; const startDate = monthUtils.subMonths(monthUtils.currentMonth(), 5) + '-01'; const endDate = monthUtils.currentDay(); diff --git a/packages/desktop-client/src/components/reports/ReportRouter.tsx b/packages/desktop-client/src/components/reports/ReportRouter.tsx index e2b63f55ee..92d5bb300d 100644 --- a/packages/desktop-client/src/components/reports/ReportRouter.tsx +++ b/packages/desktop-client/src/components/reports/ReportRouter.tsx @@ -1,6 +1,8 @@ import React from 'react'; import { Route, Routes } from 'react-router'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; + import { AgeOfMoney } from './reports/AgeOfMoney'; import { BudgetAnalysis } from './reports/BudgetAnalysis'; import { Calendar } from './reports/Calendar'; @@ -14,8 +16,6 @@ import { Spending } from './reports/Spending'; import { Summary } from './reports/Summary'; import { ReportsDashboardRouter } from './ReportsDashboardRouter'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; - export function ReportRouter() { const crossoverReportEnabled = useFeatureFlag('crossoverReport'); const ageOfMoneyReportEnabled = useFeatureFlag('ageOfMoneyReport'); diff --git a/packages/desktop-client/src/components/reports/ReportSidebar.tsx b/packages/desktop-client/src/components/reports/ReportSidebar.tsx index 495ac2e83f..bd70b52cc9 100644 --- a/packages/desktop-client/src/components/reports/ReportSidebar.tsx +++ b/packages/desktop-client/src/components/reports/ReportSidebar.tsx @@ -12,8 +12,7 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; - -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { CategoryEntity, CategoryGroupEntity, @@ -21,8 +20,11 @@ import type { sortByOpType, TimeFrame, TransactionEntity, -} from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +} from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; + +import { Information } from '#components/alerts'; +import { useLocale } from '#hooks/useLocale'; import { CategorySelector } from './CategorySelector'; import { defaultsList, disabledList } from './disabledList'; @@ -33,9 +35,6 @@ import type { dateRangeProps } from './ReportOptions'; import { validateEnd, validateStart } from './reportRanges'; import { setSessionReport } from './setSessionReport'; -import { Information } from '@desktop-client/components/alerts'; -import { useLocale } from '@desktop-client/hooks/useLocale'; - type ReportSidebarProps = { customReportItems: CustomReportEntity; selectedCategories: CategoryEntity[]; diff --git a/packages/desktop-client/src/components/reports/ReportSummary.tsx b/packages/desktop-client/src/components/reports/ReportSummary.tsx index 0b3b3c3a0d..fab84bbde7 100644 --- a/packages/desktop-client/src/components/reports/ReportSummary.tsx +++ b/packages/desktop-client/src/components/reports/ReportSummary.tsx @@ -5,17 +5,19 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { + balanceTypeOpType, + DataEntity, +} from '@actual-app/core/types/models'; -import * as monthUtils from 'loot-core/shared/months'; -import type { balanceTypeOpType, DataEntity } from 'loot-core/types/models'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; import { ReportOptions } from './ReportOptions'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; - type ReportSummaryProps = { startDate: string; endDate: string; diff --git a/packages/desktop-client/src/components/reports/ReportTopbar.tsx b/packages/desktop-client/src/components/reports/ReportTopbar.tsx index 00fe1d017a..d89db0ab2a 100644 --- a/packages/desktop-client/src/components/reports/ReportTopbar.tsx +++ b/packages/desktop-client/src/components/reports/ReportTopbar.tsx @@ -16,13 +16,14 @@ import { import { SpaceBetween } from '@actual-app/components/space-between'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { toPng } from 'html-to-image'; - -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { CustomReportEntity, RuleConditionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { toPng } from 'html-to-image'; + +import { FilterButton } from '#components/filters/FiltersMenu'; import { GraphButton } from './GraphButton'; import { SaveReportWrapper } from './SaveReport'; @@ -30,8 +31,6 @@ import type { SavedStatus } from './SaveReportMenu'; import { setSessionReport } from './setSessionReport'; import { SnapshotButton } from './SnapshotButton'; -import { FilterButton } from '@desktop-client/components/filters/FiltersMenu'; - type ReportTopbarProps = { customReportItems: CustomReportEntity; report: CustomReportEntity; diff --git a/packages/desktop-client/src/components/reports/ReportsDashboardRouter.tsx b/packages/desktop-client/src/components/reports/ReportsDashboardRouter.tsx index 15bcb48c0b..69df451053 100644 --- a/packages/desktop-client/src/components/reports/ReportsDashboardRouter.tsx +++ b/packages/desktop-client/src/components/reports/ReportsDashboardRouter.tsx @@ -5,12 +5,12 @@ import { useParams } from 'react-router'; import { Block } from '@actual-app/components/block'; import { View } from '@actual-app/components/view'; +import { useDashboardPages } from '#hooks/useDashboardPages'; +import { useNavigate } from '#hooks/useNavigate'; + import { LoadingIndicator } from './LoadingIndicator'; import { Overview } from './Overview'; -import { useDashboardPages } from '@desktop-client/hooks/useDashboardPages'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; - export function ReportsDashboardRouter() { const { t } = useTranslation(); const { dashboardId } = useParams<{ dashboardId?: string }>(); diff --git a/packages/desktop-client/src/components/reports/SaveReport.tsx b/packages/desktop-client/src/components/reports/SaveReport.tsx index 5904f2d4b3..0799336293 100644 --- a/packages/desktop-client/src/components/reports/SaveReport.tsx +++ b/packages/desktop-client/src/components/reports/SaveReport.tsx @@ -8,11 +8,20 @@ import { Select } from '@actual-app/components/select'; import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; - import type { CustomReportEntity, DashboardPageEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import { FormField, FormLabel } from '#components/forms'; +import { useDashboardPages } from '#hooks/useDashboardPages'; +import { useReports } from '#hooks/useReports'; +import { + useAddDashboardWidgetMutation, + useCreateReportMutation, + useDeleteReportMutation, + useUpdateReportMutation, +} from '#reports/mutations'; import { LoadingIndicator } from './LoadingIndicator'; import { SaveReportChoose } from './SaveReportChoose'; @@ -21,16 +30,6 @@ import { SaveReportMenu } from './SaveReportMenu'; import type { SavedStatus } from './SaveReportMenu'; import { SaveReportName } from './SaveReportName'; -import { FormField, FormLabel } from '@desktop-client/components/forms'; -import { useDashboardPages } from '@desktop-client/hooks/useDashboardPages'; -import { useReports } from '@desktop-client/hooks/useReports'; -import { - useAddDashboardWidgetMutation, - useCreateReportMutation, - useDeleteReportMutation, - useUpdateReportMutation, -} from '@desktop-client/reports/mutations'; - type SaveReportProps = { customReportItems: T; report: CustomReportEntity; diff --git a/packages/desktop-client/src/components/reports/SaveReportChoose.tsx b/packages/desktop-client/src/components/reports/SaveReportChoose.tsx index ddbe9857bc..a8c7d19274 100644 --- a/packages/desktop-client/src/components/reports/SaveReportChoose.tsx +++ b/packages/desktop-client/src/components/reports/SaveReportChoose.tsx @@ -7,7 +7,7 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { GenericInput } from '@desktop-client/components/util/GenericInput'; +import { GenericInput } from '#components/util/GenericInput'; type SaveReportChooseProps = { onApply: (cond: string) => void; diff --git a/packages/desktop-client/src/components/reports/SaveReportDelete.tsx b/packages/desktop-client/src/components/reports/SaveReportDelete.tsx index eaea95b2bd..8bcc91a7a6 100644 --- a/packages/desktop-client/src/components/reports/SaveReportDelete.tsx +++ b/packages/desktop-client/src/components/reports/SaveReportDelete.tsx @@ -6,8 +6,7 @@ import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import type { TransObjectLiteral } from 'loot-core/types/util'; +import type { TransObjectLiteral } from '@actual-app/core/types/util'; type SaveReportDeleteProps = { onDelete: () => void; diff --git a/packages/desktop-client/src/components/reports/SaveReportName.tsx b/packages/desktop-client/src/components/reports/SaveReportName.tsx index 804548c4d3..84d8905172 100644 --- a/packages/desktop-client/src/components/reports/SaveReportName.tsx +++ b/packages/desktop-client/src/components/reports/SaveReportName.tsx @@ -9,10 +9,9 @@ import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { CustomReportEntity } from '@actual-app/core/types/models'; -import type { CustomReportEntity } from 'loot-core/types/models'; - -import { FormField, FormLabel } from '@desktop-client/components/forms'; +import { FormField, FormLabel } from '#components/forms'; type SaveReportNameProps = { menuItem: string; diff --git a/packages/desktop-client/src/components/reports/SummaryNumber.tsx b/packages/desktop-client/src/components/reports/SummaryNumber.tsx index 92ecdcd197..1a3a4fbf9c 100644 --- a/packages/desktop-client/src/components/reports/SummaryNumber.tsx +++ b/packages/desktop-client/src/components/reports/SummaryNumber.tsx @@ -6,13 +6,13 @@ import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; import debounce from 'lodash/debounce'; -import { LoadingIndicator } from './LoadingIndicator'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { useFormat } from '#hooks/useFormat'; +import { useMergedRefs } from '#hooks/useMergedRefs'; +import { useResizeObserver } from '#hooks/useResizeObserver'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useMergedRefs } from '@desktop-client/hooks/useMergedRefs'; -import { useResizeObserver } from '@desktop-client/hooks/useResizeObserver'; +import { LoadingIndicator } from './LoadingIndicator'; const FONT_SIZE_SCALE_FACTOR = 1.6; const CONTAINER_MARGIN = 8; diff --git a/packages/desktop-client/src/components/reports/chart-theme.ts b/packages/desktop-client/src/components/reports/chart-theme.ts index 4e264562b8..054a7d40ac 100644 --- a/packages/desktop-client/src/components/reports/chart-theme.ts +++ b/packages/desktop-client/src/components/reports/chart-theme.ts @@ -1,4 +1,4 @@ -import { useIsTestEnv } from '@desktop-client/hooks/useIsTestEnv'; +import { useIsTestEnv } from '#hooks/useIsTestEnv'; export function getColorScale(name: string): string[] { const scales: Record = { diff --git a/packages/desktop-client/src/components/reports/disabledList.ts b/packages/desktop-client/src/components/reports/disabledList.ts index 4413ba389b..2749bb572f 100644 --- a/packages/desktop-client/src/components/reports/disabledList.ts +++ b/packages/desktop-client/src/components/reports/disabledList.ts @@ -1,7 +1,6 @@ +import type { sortByOpType } from '@actual-app/core/types/models'; import { t } from 'i18next'; -import type { sortByOpType } from 'loot-core/types/models'; - const intervalOptions = [ { description: t('Daily'), diff --git a/packages/desktop-client/src/components/reports/getLiveRange.ts b/packages/desktop-client/src/components/reports/getLiveRange.ts index 91634e88b3..0c564af48c 100644 --- a/packages/desktop-client/src/components/reports/getLiveRange.ts +++ b/packages/desktop-client/src/components/reports/getLiveRange.ts @@ -1,6 +1,6 @@ -import * as monthUtils from 'loot-core/shared/months'; -import type { TimeFrame } from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { TimeFrame } from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; import { ReportOptions } from './ReportOptions'; import { getSpecificRange, validateRange } from './reportRanges'; diff --git a/packages/desktop-client/src/components/reports/graphs/AgeOfMoneyGraph.tsx b/packages/desktop-client/src/components/reports/graphs/AgeOfMoneyGraph.tsx index 5a8b45c247..bbaa77daa3 100644 --- a/packages/desktop-client/src/components/reports/graphs/AgeOfMoneyGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/AgeOfMoneyGraph.tsx @@ -14,9 +14,9 @@ import { YAxis, } from 'recharts'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; type PayloadItem = { payload: { diff --git a/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx b/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx index e218bdb12d..07f88d8753 100644 --- a/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/AreaGraph.tsx @@ -4,6 +4,10 @@ import { useTranslation } from 'react-i18next'; import { AlignedText } from '@actual-app/components/aligned-text'; import { theme } from '@actual-app/components/theme'; +import type { + balanceTypeOpType, + DataEntity, +} from '@actual-app/core/types/models'; import { css } from '@emotion/css'; import { Area, @@ -16,18 +20,16 @@ import { } from 'recharts'; import type { LabelProps } from 'recharts'; -import type { balanceTypeOpType, DataEntity } from 'loot-core/types/models'; +import { FinancialText } from '#components/FinancialText'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; import { adjustTextSize } from './adjustTextSize'; import { renderCustomLabel } from './renderCustomLabel'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; - type PayloadItem = { payload: { date: string; diff --git a/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx b/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx index 58ae6ecffc..8476f99f4f 100644 --- a/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/BarGraph.tsx @@ -5,6 +5,11 @@ import { useTranslation } from 'react-i18next'; import { AlignedText } from '@actual-app/components/aligned-text'; import { theme } from '@actual-app/components/theme'; +import type { + balanceTypeOpType, + DataEntity, + RuleConditionEntity, +} from '@actual-app/core/types/models'; import { css } from '@emotion/css'; import { Bar, @@ -19,28 +24,22 @@ import { } from 'recharts'; import type { BarShapeProps } from 'recharts'; -import type { - balanceTypeOpType, - DataEntity, - RuleConditionEntity, -} from 'loot-core/types/models'; +import { FinancialText } from '#components/FinancialText'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { getCustomTick } from '#components/reports/getCustomTick'; +import { numberFormatterTooltip } from '#components/reports/numberFormatter'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; import { adjustTextSize } from './adjustTextSize'; import { renderCustomLabel } from './renderCustomLabel'; import { showActivity } from './showActivity'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { getCustomTick } from '@desktop-client/components/reports/getCustomTick'; -import { numberFormatterTooltip } from '@desktop-client/components/reports/numberFormatter'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; - type PayloadChild = { props: { name: string; diff --git a/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx b/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx index 1601a63d71..79de224c8d 100644 --- a/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/BarLineGraph.tsx @@ -16,11 +16,11 @@ import { YAxis, } from 'recharts'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { numberFormatterTooltip } from '@desktop-client/components/reports/numberFormatter'; -import { useFormat } from '@desktop-client/hooks/useFormat'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { numberFormatterTooltip } from '#components/reports/numberFormatter'; +import { useFormat } from '#hooks/useFormat'; type PayloadItem = { payload: { diff --git a/packages/desktop-client/src/components/reports/graphs/BudgetAnalysisGraph.tsx b/packages/desktop-client/src/components/reports/graphs/BudgetAnalysisGraph.tsx index a59f794bb8..16cbfe11c2 100644 --- a/packages/desktop-client/src/components/reports/graphs/BudgetAnalysisGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/BudgetAnalysisGraph.tsx @@ -4,6 +4,7 @@ import { Trans, useTranslation } from 'react-i18next'; import { AlignedText } from '@actual-app/components/aligned-text'; import type { CSSProperties } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; +import * as monthUtils from '@actual-app/core/shared/months'; import { css } from '@emotion/css'; import { Bar, @@ -16,17 +17,15 @@ import { YAxis, } from 'recharts'; -import * as monthUtils from 'loot-core/shared/months'; +import { FinancialText } from '#components/FinancialText'; +import { Container } from '#components/reports/Container'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; import { computePadding } from './util/computePadding'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { Container } from '@desktop-client/components/reports/Container'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; - /** * Interval data for the Budget Analysis graph. * @property date - A date string in format 'YYYY-MM' for monthly intervals diff --git a/packages/desktop-client/src/components/reports/graphs/CalendarGraph.tsx b/packages/desktop-client/src/components/reports/graphs/CalendarGraph.tsx index e62ed94253..b704066d4b 100644 --- a/packages/desktop-client/src/components/reports/graphs/CalendarGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/CalendarGraph.tsx @@ -7,6 +7,7 @@ import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; import { addDays, format as formatDate, @@ -16,12 +17,10 @@ import { startOfWeek, } from 'date-fns'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; - -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useResizeObserver } from '@desktop-client/hooks/useResizeObserver'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { useFormat } from '#hooks/useFormat'; +import { useResizeObserver } from '#hooks/useResizeObserver'; type CalendarGraphProps = { data: { diff --git a/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx b/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx index 23fcfc6df8..09509140f8 100644 --- a/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/CashFlowGraph.tsx @@ -17,13 +17,13 @@ import { YAxis, } from 'recharts'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; +import { FinancialText } from '#components/FinancialText'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; const MAX_BAR_SIZE = 50; const ANIMATION_DURATION = 1000; // in ms diff --git a/packages/desktop-client/src/components/reports/graphs/CrossoverGraph.tsx b/packages/desktop-client/src/components/reports/graphs/CrossoverGraph.tsx index f55fc9a0f3..700bca34b1 100644 --- a/packages/desktop-client/src/components/reports/graphs/CrossoverGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/CrossoverGraph.tsx @@ -14,11 +14,11 @@ import { YAxis, } from 'recharts'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; +import { FinancialText } from '#components/FinancialText'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { useFormat } from '#hooks/useFormat'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; type PayloadItem = { payload: { diff --git a/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx b/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx index f82a2bac65..8be92f41ca 100644 --- a/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/DonutGraph.tsx @@ -3,9 +3,6 @@ import React, { useMemo, useState } from 'react'; import type { CSSProperties } from 'react'; import { theme } from '@actual-app/components/theme'; -import { Pie, PieChart, Sector } from 'recharts'; -import type { PieSectorShapeProps } from 'recharts'; - import type { balanceTypeOpType, DataEntity, @@ -13,21 +10,23 @@ import type { IntervalEntity, LegendEntity, RuleConditionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { Pie, PieChart, Sector } from 'recharts'; +import type { PieSectorShapeProps } from 'recharts'; + +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { useFormat } from '#hooks/useFormat'; +import { useNavigate } from '#hooks/useNavigate'; import { adjustTextSize } from './adjustTextSize'; import { renderCustomLabel } from './renderCustomLabel'; import { showActivity } from './showActivity'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; - const RADIAN = Math.PI / 180; const canDeviceHover = () => window.matchMedia('(hover: hover)').matches; diff --git a/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx b/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx index ee46a3c4a7..337024cb71 100644 --- a/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/LineGraph.tsx @@ -5,6 +5,12 @@ import { useTranslation } from 'react-i18next'; import { AlignedText } from '@actual-app/components/aligned-text'; import { theme } from '@actual-app/components/theme'; +import type { + balanceTypeOpType, + DataEntity, + LegendEntity, + RuleConditionEntity, +} from '@actual-app/core/types/models'; import { css } from '@emotion/css'; import { CartesianGrid, @@ -15,27 +21,20 @@ import { YAxis, } from 'recharts'; -import type { - balanceTypeOpType, - DataEntity, - LegendEntity, - RuleConditionEntity, -} from 'loot-core/types/models'; +import { FinancialText } from '#components/FinancialText'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { getCustomTick } from '#components/reports/getCustomTick'; +import { numberFormatterTooltip } from '#components/reports/numberFormatter'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; import { showActivity } from './showActivity'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { getCustomTick } from '@desktop-client/components/reports/getCustomTick'; -import { numberFormatterTooltip } from '@desktop-client/components/reports/numberFormatter'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; - type PayloadItem = { dataKey: string; value: number; diff --git a/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx b/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx index 589e5b32f5..31408b6d43 100644 --- a/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/NetWorthGraph.tsx @@ -18,18 +18,18 @@ import { } from 'recharts'; import type { TooltipContentProps } from 'recharts'; -import { computePadding } from './util/computePadding'; - -import { FinancialText } from '@desktop-client/components/FinancialText'; +import { FinancialText } from '#components/FinancialText'; import { getColorScale, useRechartsAnimation, -} from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { numberFormatterTooltip } from '@desktop-client/components/reports/numberFormatter'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { UseFormatResult } from '@desktop-client/hooks/useFormat'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; +} from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { numberFormatterTooltip } from '#components/reports/numberFormatter'; +import { useFormat } from '#hooks/useFormat'; +import type { UseFormatResult } from '#hooks/useFormat'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; + +import { computePadding } from './util/computePadding'; type NetWorthDataPoint = { x: string; diff --git a/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx b/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx index 44a8160a9f..392c8f52db 100644 --- a/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/SankeyGraph.tsx @@ -13,10 +13,10 @@ import { } from 'recharts'; import type { SankeyData } from 'recharts/types/chart/Sankey'; -import { getColorScale } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; +import { getColorScale } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { useFormat } from '#hooks/useFormat'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; type SankeyGraphNode = SankeyData['nodes'][number] & { hasChildren?: boolean; diff --git a/packages/desktop-client/src/components/reports/graphs/SpendingGraph.tsx b/packages/desktop-client/src/components/reports/graphs/SpendingGraph.tsx index d271d7b780..fc5c127b82 100644 --- a/packages/desktop-client/src/components/reports/graphs/SpendingGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/SpendingGraph.tsx @@ -5,6 +5,7 @@ import { Trans, useTranslation } from 'react-i18next'; import { AlignedText } from '@actual-app/components/aligned-text'; import { theme } from '@actual-app/components/theme'; +import type { SpendingEntity } from '@actual-app/core/types/models'; import { css } from '@emotion/css'; import { Area, @@ -15,18 +16,16 @@ import { YAxis, } from 'recharts'; -import type { SpendingEntity } from 'loot-core/types/models'; +import { FinancialText } from '#components/FinancialText'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { numberFormatterTooltip } from '#components/reports/numberFormatter'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; import { computePadding } from './util/computePadding'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { numberFormatterTooltip } from '@desktop-client/components/reports/numberFormatter'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; - type PayloadItem = { value: number; payload: { diff --git a/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx b/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx index 80a87cb820..87fb2d4340 100644 --- a/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx +++ b/packages/desktop-client/src/components/reports/graphs/StackedBarGraph.tsx @@ -5,6 +5,12 @@ import { useTranslation } from 'react-i18next'; import { AlignedText } from '@actual-app/components/aligned-text'; import { theme } from '@actual-app/components/theme'; +import type { + balanceTypeOpType, + DataEntity, + LegendEntity, + RuleConditionEntity, +} from '@actual-app/core/types/models'; import { css } from '@emotion/css'; import { Bar, @@ -16,28 +22,21 @@ import { YAxis, } from 'recharts'; -import type { - balanceTypeOpType, - DataEntity, - LegendEntity, - RuleConditionEntity, -} from 'loot-core/types/models'; +import { FinancialText } from '#components/FinancialText'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { getCustomTick } from '#components/reports/getCustomTick'; +import { numberFormatterTooltip } from '#components/reports/numberFormatter'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePrivacyMode } from '#hooks/usePrivacyMode'; import { renderCustomLabel } from './renderCustomLabel'; import { showActivity } from './showActivity'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { getCustomTick } from '@desktop-client/components/reports/getCustomTick'; -import { numberFormatterTooltip } from '@desktop-client/components/reports/numberFormatter'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePrivacyMode } from '@desktop-client/hooks/usePrivacyMode'; - type PayloadItem = { name: string; value: number; diff --git a/packages/desktop-client/src/components/reports/graphs/renderCustomLabel.tsx b/packages/desktop-client/src/components/reports/graphs/renderCustomLabel.tsx index 35287e2a32..8e1274f2a2 100644 --- a/packages/desktop-client/src/components/reports/graphs/renderCustomLabel.tsx +++ b/packages/desktop-client/src/components/reports/graphs/renderCustomLabel.tsx @@ -4,8 +4,8 @@ import type { SVGAttributes } from 'react'; import { theme } from '@actual-app/components/theme'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; export const renderCustomLabel = ( calcX: SVGAttributes['x'], diff --git a/packages/desktop-client/src/components/reports/graphs/showActivity.ts b/packages/desktop-client/src/components/reports/graphs/showActivity.ts index f47535be53..266ad481f8 100644 --- a/packages/desktop-client/src/components/reports/graphs/showActivity.ts +++ b/packages/desktop-client/src/components/reports/graphs/showActivity.ts @@ -1,15 +1,15 @@ import type { NavigateFunction } from 'react-router'; -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { AccountEntity, balanceTypeOpType, CategoryEntity, CategoryGroupEntity, RuleConditionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; -import { ReportOptions } from '@desktop-client/components/reports/ReportOptions'; +import { ReportOptions } from '#components/reports/ReportOptions'; type showActivityProps = { navigate: NavigateFunction; diff --git a/packages/desktop-client/src/components/reports/graphs/tableGraph/RenderTableRow.tsx b/packages/desktop-client/src/components/reports/graphs/tableGraph/RenderTableRow.tsx index e25520b5f2..3598aef316 100644 --- a/packages/desktop-client/src/components/reports/graphs/tableGraph/RenderTableRow.tsx +++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/RenderTableRow.tsx @@ -2,8 +2,7 @@ import React from 'react'; import type { CSSProperties, ReactNode } from 'react'; import { View } from '@actual-app/components/view'; - -import type { GroupedEntity } from 'loot-core/types/models'; +import type { GroupedEntity } from '@actual-app/core/types/models'; import type { renderRowProps } from './ReportTable'; 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 5590b2b4a8..9004732298 100644 --- a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTable.tsx +++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTable.tsx @@ -4,13 +4,12 @@ import type { RefObject, UIEventHandler } from 'react'; import { Block } from '@actual-app/components/block'; import type { CSSProperties } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; - import type { balanceTypeOpType, DataEntity, GroupedEntity, RuleConditionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; import { ReportTableHeader } from './ReportTableHeader'; import { ReportTableList } from './ReportTableList'; 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 aaa6690cff..7920a54e30 100644 --- a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableHeader.tsx +++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableHeader.tsx @@ -4,11 +4,13 @@ import { useTranslation } from 'react-i18next'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { + balanceTypeOpType, + IntervalEntity, +} from '@actual-app/core/types/models'; -import type { balanceTypeOpType, IntervalEntity } from 'loot-core/types/models'; - -import { ReportOptions } from '@desktop-client/components/reports/ReportOptions'; -import { Cell, Row } from '@desktop-client/components/table'; +import { ReportOptions } from '#components/reports/ReportOptions'; +import { Cell, Row } from '#components/table'; type ReportTableHeaderProps = { groupBy: string; 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 08fde8720d..75ce230359 100644 --- a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableList.tsx +++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableList.tsx @@ -3,14 +3,13 @@ import type { CSSProperties, ReactNode } from 'react'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { DataEntity, GroupedEntity } from '@actual-app/core/types/models'; -import type { DataEntity, GroupedEntity } from 'loot-core/types/models'; +import { Row } from '#components/table'; import { RenderTableRow } from './RenderTableRow'; import type { renderRowProps } from './ReportTable'; -import { Row } from '@desktop-client/components/table'; - type ReportTableListProps = { data: DataEntity; mode: string; diff --git a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableRow.tsx b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableRow.tsx index 3af8b7931c..2b8495ae89 100644 --- a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableRow.tsx +++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableRow.tsx @@ -4,20 +4,19 @@ import type { CSSProperties, RefObject, UIEventHandler } from 'react'; import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - import type { balanceTypeOpType, GroupedEntity, RuleConditionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { showActivity } from '@desktop-client/components/reports/graphs/showActivity'; -import { Cell, Row } from '@desktop-client/components/table'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +import { FinancialText } from '#components/FinancialText'; +import { showActivity } from '#components/reports/graphs/showActivity'; +import { Cell, Row } from '#components/table'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { useFormat } from '#hooks/useFormat'; +import { useNavigate } from '#hooks/useNavigate'; type ReportTableRowProps = { item: GroupedEntity; 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 0cb1a52418..c538016cf1 100644 --- a/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableTotals.tsx +++ b/packages/desktop-client/src/components/reports/graphs/tableGraph/ReportTableTotals.tsx @@ -5,8 +5,7 @@ import { useTranslation } from 'react-i18next'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import type { DataEntity, GroupedEntity } from 'loot-core/types/models'; +import type { DataEntity, GroupedEntity } from '@actual-app/core/types/models'; import type { renderTotalsProps } from './ReportTable'; diff --git a/packages/desktop-client/src/components/reports/index.tsx b/packages/desktop-client/src/components/reports/index.tsx index 678fbefb07..8ad47b257b 100644 --- a/packages/desktop-client/src/components/reports/index.tsx +++ b/packages/desktop-client/src/components/reports/index.tsx @@ -2,7 +2,7 @@ import { useTranslation } from 'react-i18next'; import { View } from '@actual-app/components/view'; -import { LoadComponent } from '@desktop-client/components/util/LoadComponent'; +import { LoadComponent } from '#components/util/LoadComponent'; export function Reports() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/reports/reportRanges.ts b/packages/desktop-client/src/components/reports/reportRanges.ts index 9ab793789e..e8ba61642c 100644 --- a/packages/desktop-client/src/components/reports/reportRanges.ts +++ b/packages/desktop-client/src/components/reports/reportRanges.ts @@ -1,6 +1,6 @@ -import * as monthUtils from 'loot-core/shared/months'; -import type { TimeFrame } from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { TimeFrame } from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; export function validateStart( earliest: string, diff --git a/packages/desktop-client/src/components/reports/reports/AgeOfMoney.tsx b/packages/desktop-client/src/components/reports/reports/AgeOfMoney.tsx index 05a7c00764..9849e90616 100644 --- a/packages/desktop-client/src/components/reports/reports/AgeOfMoney.tsx +++ b/packages/desktop-client/src/components/reports/reports/AgeOfMoney.tsx @@ -17,41 +17,36 @@ import { Popover } from '@actual-app/components/popover'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import * as d from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { AgeOfMoneyGranularity, AgeOfMoneyWidget, TimeFrame, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import * as d from 'date-fns'; + +import { EditablePageHeaderTitle } from '#components/EditablePageHeaderTitle'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page, PageHeader } from '#components/Page'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { AgeOfMoneyGraph } from '#components/reports/graphs/AgeOfMoneyGraph'; +import { Header } from '#components/reports/Header'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { createAgeOfMoneySpreadsheet } from '#components/reports/spreadsheets/age-of-money-spreadsheet'; +import { useReport } from '#components/reports/useReport'; +import { fromDateRepr } from '#components/reports/util'; +import { useDashboardWidget } from '#hooks/useDashboardWidget'; +import { useLocale } from '#hooks/useLocale'; +import { useNavigate } from '#hooks/useNavigate'; +import { useRuleConditionFilters } from '#hooks/useRuleConditionFilters'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; import { getAgeColor } from './AgeOfMoneyCard'; -import { EditablePageHeaderTitle } from '@desktop-client/components/EditablePageHeaderTitle'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { - MobilePageHeader, - Page, - PageHeader, -} from '@desktop-client/components/Page'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { AgeOfMoneyGraph } from '@desktop-client/components/reports/graphs/AgeOfMoneyGraph'; -import { Header } from '@desktop-client/components/reports/Header'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { createAgeOfMoneySpreadsheet } from '@desktop-client/components/reports/spreadsheets/age-of-money-spreadsheet'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { fromDateRepr } from '@desktop-client/components/reports/util'; -import { useDashboardWidget } from '@desktop-client/hooks/useDashboardWidget'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useRuleConditionFilters } from '@desktop-client/hooks/useRuleConditionFilters'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; - export function AgeOfMoney() { const params = useParams(); const { data: widget, isLoading } = useDashboardWidget({ diff --git a/packages/desktop-client/src/components/reports/reports/AgeOfMoneyCard.tsx b/packages/desktop-client/src/components/reports/reports/AgeOfMoneyCard.tsx index 88d4a8932a..24990f629b 100644 --- a/packages/desktop-client/src/components/reports/reports/AgeOfMoneyCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/AgeOfMoneyCard.tsx @@ -6,21 +6,20 @@ import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { AgeOfMoneyWidget } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { AgeOfMoneyWidget } from 'loot-core/types/models'; - -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { DateRange } from '@desktop-client/components/reports/DateRange'; -import { AgeOfMoneyGraph } from '@desktop-client/components/reports/graphs/AgeOfMoneyGraph'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { ReportCardName } from '@desktop-client/components/reports/ReportCardName'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { createAgeOfMoneySpreadsheet } from '@desktop-client/components/reports/spreadsheets/age-of-money-spreadsheet'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; -import { useReport } from '@desktop-client/components/reports/useReport'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { DateRange } from '#components/reports/DateRange'; +import { AgeOfMoneyGraph } from '#components/reports/graphs/AgeOfMoneyGraph'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportCard } from '#components/reports/ReportCard'; +import { ReportCardName } from '#components/reports/ReportCardName'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { createAgeOfMoneySpreadsheet } from '#components/reports/spreadsheets/age-of-money-spreadsheet'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; +import { useReport } from '#components/reports/useReport'; // Determine status color based on age export function getAgeColor(age: number | null) { diff --git a/packages/desktop-client/src/components/reports/reports/BudgetAnalysis.tsx b/packages/desktop-client/src/components/reports/reports/BudgetAnalysis.tsx index bf808cfd59..c36f68afa0 100644 --- a/packages/desktop-client/src/components/reports/reports/BudgetAnalysis.tsx +++ b/packages/desktop-client/src/components/reports/reports/BudgetAnalysis.tsx @@ -11,42 +11,37 @@ import { Paragraph } from '@actual-app/components/paragraph'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; -import * as d from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { BudgetAnalysisWidget, RuleConditionEntity, TimeFrame, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import * as d from 'date-fns'; -import { EditablePageHeaderTitle } from '@desktop-client/components/EditablePageHeaderTitle'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { - MobilePageHeader, - Page, - PageHeader, -} from '@desktop-client/components/Page'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { Change } from '@desktop-client/components/reports/Change'; -import { BudgetAnalysisGraph } from '@desktop-client/components/reports/graphs/BudgetAnalysisGraph'; -import { Header } from '@desktop-client/components/reports/Header'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { createBudgetAnalysisSpreadsheet } from '@desktop-client/components/reports/spreadsheets/budget-analysis-spreadsheet'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { fromDateRepr } from '@desktop-client/components/reports/util'; -import { useDashboardWidget } from '@desktop-client/hooks/useDashboardWidget'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useRuleConditionFilters } from '@desktop-client/hooks/useRuleConditionFilters'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { useUpdateDashboardWidgetMutation } from '@desktop-client/reports/mutations'; +import { EditablePageHeaderTitle } from '#components/EditablePageHeaderTitle'; +import { FinancialText } from '#components/FinancialText'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page, PageHeader } from '#components/Page'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { Change } from '#components/reports/Change'; +import { BudgetAnalysisGraph } from '#components/reports/graphs/BudgetAnalysisGraph'; +import { Header } from '#components/reports/Header'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { createBudgetAnalysisSpreadsheet } from '#components/reports/spreadsheets/budget-analysis-spreadsheet'; +import { useReport } from '#components/reports/useReport'; +import { fromDateRepr } from '#components/reports/util'; +import { useDashboardWidget } from '#hooks/useDashboardWidget'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useNavigate } from '#hooks/useNavigate'; +import { useRuleConditionFilters } from '#hooks/useRuleConditionFilters'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { useUpdateDashboardWidgetMutation } from '#reports/mutations'; export function BudgetAnalysis() { const params = useParams(); diff --git a/packages/desktop-client/src/components/reports/reports/BudgetAnalysisCard.tsx b/packages/desktop-client/src/components/reports/reports/BudgetAnalysisCard.tsx index a5e8fa5c28..6fd593e391 100644 --- a/packages/desktop-client/src/components/reports/reports/BudgetAnalysisCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/BudgetAnalysisCard.tsx @@ -5,22 +5,21 @@ import { Block } from '@actual-app/components/block'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { BudgetAnalysisWidget } from '@actual-app/core/types/models'; -import * as monthUtils from 'loot-core/shared/months'; -import type { BudgetAnalysisWidget } from 'loot-core/types/models'; - -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { DateRange } from '@desktop-client/components/reports/DateRange'; -import { BudgetAnalysisGraph } from '@desktop-client/components/reports/graphs/BudgetAnalysisGraph'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { ReportCardName } from '@desktop-client/components/reports/ReportCardName'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { createBudgetAnalysisSpreadsheet } from '@desktop-client/components/reports/spreadsheets/budget-analysis-spreadsheet'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { useFormat } from '@desktop-client/hooks/useFormat'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { DateRange } from '#components/reports/DateRange'; +import { BudgetAnalysisGraph } from '#components/reports/graphs/BudgetAnalysisGraph'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportCard } from '#components/reports/ReportCard'; +import { ReportCardName } from '#components/reports/ReportCardName'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { createBudgetAnalysisSpreadsheet } from '#components/reports/spreadsheets/budget-analysis-spreadsheet'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; +import { useReport } from '#components/reports/useReport'; +import { useFormat } from '#hooks/useFormat'; type BudgetAnalysisCardProps = { widgetId: string; diff --git a/packages/desktop-client/src/components/reports/reports/Calendar.tsx b/packages/desktop-client/src/components/reports/reports/Calendar.tsx index dc37e2f9f4..345b9edfbf 100644 --- a/packages/desktop-client/src/components/reports/reports/Calendar.tsx +++ b/packages/desktop-client/src/components/reports/reports/Calendar.tsx @@ -15,64 +15,59 @@ import { import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { css } from '@emotion/css'; -import { useDrag } from '@use-gesture/react'; -import { format as formatDate, parseISO } from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import type { Query } from 'loot-core/shared/query'; -import { ungroupTransactions } from 'loot-core/shared/transactions'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import type { Query } from '@actual-app/core/shared/query'; +import { ungroupTransactions } from '@actual-app/core/shared/transactions'; import type { CalendarWidget, RuleConditionEntity, TimeFrame, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { css } from '@emotion/css'; +import { useDrag } from '@use-gesture/react'; +import { format as formatDate, parseISO } from 'date-fns'; -import { EditablePageHeaderTitle } from '@desktop-client/components/EditablePageHeaderTitle'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { TransactionList as TransactionListMobile } from '@desktop-client/components/mobile/transactions/TransactionList'; -import { - MobilePageHeader, - Page, - PageHeader, -} from '@desktop-client/components/Page'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { DateRange } from '@desktop-client/components/reports/DateRange'; -import { CalendarGraph } from '@desktop-client/components/reports/graphs/CalendarGraph'; -import { Header } from '@desktop-client/components/reports/Header'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { calendarSpreadsheet } from '@desktop-client/components/reports/spreadsheets/calendar-spreadsheet'; -import type { CalendarDataType } from '@desktop-client/components/reports/spreadsheets/calendar-spreadsheet'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { fromDateRepr } from '@desktop-client/components/reports/util'; -import type { TableHandleRef } from '@desktop-client/components/table'; -import { TransactionList } from '@desktop-client/components/transactions/TransactionList'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { SchedulesProvider } from '@desktop-client/hooks/useCachedSchedules'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useDashboardWidget } from '@desktop-client/hooks/useDashboardWidget'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { DisplayPayeeProvider } from '@desktop-client/hooks/useDisplayPayee'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useMergedRefs } from '@desktop-client/hooks/useMergedRefs'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { useResizeObserver } from '@desktop-client/hooks/useResizeObserver'; -import { useRuleConditionFilters } from '@desktop-client/hooks/useRuleConditionFilters'; -import { SelectedProviderWithItems } from '@desktop-client/hooks/useSelected'; -import { SplitsExpandedProvider } from '@desktop-client/hooks/useSplitsExpanded'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { useTransactions } from '@desktop-client/hooks/useTransactions'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { useUpdateDashboardWidgetMutation } from '@desktop-client/reports/mutations'; +import { EditablePageHeaderTitle } from '#components/EditablePageHeaderTitle'; +import { FinancialText } from '#components/FinancialText'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { TransactionList as TransactionListMobile } from '#components/mobile/transactions/TransactionList'; +import { MobilePageHeader, Page, PageHeader } from '#components/Page'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { DateRange } from '#components/reports/DateRange'; +import { CalendarGraph } from '#components/reports/graphs/CalendarGraph'; +import { Header } from '#components/reports/Header'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { calendarSpreadsheet } from '#components/reports/spreadsheets/calendar-spreadsheet'; +import type { CalendarDataType } from '#components/reports/spreadsheets/calendar-spreadsheet'; +import { useReport } from '#components/reports/useReport'; +import { fromDateRepr } from '#components/reports/util'; +import type { TableHandleRef } from '#components/table'; +import { TransactionList } from '#components/transactions/TransactionList'; +import { useAccounts } from '#hooks/useAccounts'; +import { SchedulesProvider } from '#hooks/useCachedSchedules'; +import { useCategories } from '#hooks/useCategories'; +import { useDashboardWidget } from '#hooks/useDashboardWidget'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { DisplayPayeeProvider } from '#hooks/useDisplayPayee'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useMergedRefs } from '#hooks/useMergedRefs'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePayees } from '#hooks/usePayees'; +import { useResizeObserver } from '#hooks/useResizeObserver'; +import { useRuleConditionFilters } from '#hooks/useRuleConditionFilters'; +import { SelectedProviderWithItems } from '#hooks/useSelected'; +import { SplitsExpandedProvider } from '#hooks/useSplitsExpanded'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { useTransactions } from '#hooks/useTransactions'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { useUpdateDashboardWidgetMutation } from '#reports/mutations'; const CHEVRON_HEIGHT = 42; const SUMMARY_HEIGHT = 140; diff --git a/packages/desktop-client/src/components/reports/reports/CalendarCard.tsx b/packages/desktop-client/src/components/reports/reports/CalendarCard.tsx index b2f834ba59..a9700fd51e 100644 --- a/packages/desktop-client/src/components/reports/reports/CalendarCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/CalendarCard.tsx @@ -19,31 +19,30 @@ import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { CalendarWidget } from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; import { format as formatDate } from 'date-fns'; import debounce from 'lodash/debounce'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { CalendarWidget } from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; - -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { DateRange } from '@desktop-client/components/reports/DateRange'; -import { CalendarGraph } from '@desktop-client/components/reports/graphs/CalendarGraph'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { ReportCardName } from '@desktop-client/components/reports/ReportCardName'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { calendarSpreadsheet } from '@desktop-client/components/reports/spreadsheets/calendar-spreadsheet'; -import type { CalendarDataType } from '@desktop-client/components/reports/spreadsheets/calendar-spreadsheet'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { useMergedRefs } from '@desktop-client/hooks/useMergedRefs'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useResizeObserver } from '@desktop-client/hooks/useResizeObserver'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { DateRange } from '#components/reports/DateRange'; +import { CalendarGraph } from '#components/reports/graphs/CalendarGraph'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportCard } from '#components/reports/ReportCard'; +import { ReportCardName } from '#components/reports/ReportCardName'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { calendarSpreadsheet } from '#components/reports/spreadsheets/calendar-spreadsheet'; +import type { CalendarDataType } from '#components/reports/spreadsheets/calendar-spreadsheet'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; +import { useReport } from '#components/reports/useReport'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { useMergedRefs } from '#hooks/useMergedRefs'; +import { useNavigate } from '#hooks/useNavigate'; +import { useResizeObserver } from '#hooks/useResizeObserver'; type CalendarCardProps = { widgetId: string; diff --git a/packages/desktop-client/src/components/reports/reports/CashFlow.tsx b/packages/desktop-client/src/components/reports/reports/CashFlow.tsx index df3bf3893e..cadf3dbc13 100644 --- a/packages/desktop-client/src/components/reports/reports/CashFlow.tsx +++ b/packages/desktop-client/src/components/reports/reports/CashFlow.tsx @@ -10,41 +10,36 @@ import { Paragraph } from '@actual-app/components/paragraph'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import * as d from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { CashFlowWidget, RuleConditionEntity, TimeFrame, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import * as d from 'date-fns'; -import { EditablePageHeaderTitle } from '@desktop-client/components/EditablePageHeaderTitle'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { - MobilePageHeader, - Page, - PageHeader, -} from '@desktop-client/components/Page'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { Change } from '@desktop-client/components/reports/Change'; -import { CashFlowGraph } from '@desktop-client/components/reports/graphs/CashFlowGraph'; -import { Header } from '@desktop-client/components/reports/Header'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { cashFlowByDate } from '@desktop-client/components/reports/spreadsheets/cash-flow-spreadsheet'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { useDashboardWidget } from '@desktop-client/hooks/useDashboardWidget'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useRuleConditionFilters } from '@desktop-client/hooks/useRuleConditionFilters'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { useUpdateDashboardWidgetMutation } from '@desktop-client/reports/mutations'; +import { EditablePageHeaderTitle } from '#components/EditablePageHeaderTitle'; +import { FinancialText } from '#components/FinancialText'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page, PageHeader } from '#components/Page'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { Change } from '#components/reports/Change'; +import { CashFlowGraph } from '#components/reports/graphs/CashFlowGraph'; +import { Header } from '#components/reports/Header'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { cashFlowByDate } from '#components/reports/spreadsheets/cash-flow-spreadsheet'; +import { useReport } from '#components/reports/useReport'; +import { useDashboardWidget } from '#hooks/useDashboardWidget'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useNavigate } from '#hooks/useNavigate'; +import { useRuleConditionFilters } from '#hooks/useRuleConditionFilters'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { useUpdateDashboardWidgetMutation } from '#reports/mutations'; export const defaultTimeFrame = { start: monthUtils.dayFromDate(monthUtils.currentMonth()), diff --git a/packages/desktop-client/src/components/reports/reports/CashFlowCard.tsx b/packages/desktop-client/src/components/reports/reports/CashFlowCard.tsx index b55c6d580a..c7940d5771 100644 --- a/packages/desktop-client/src/components/reports/reports/CashFlowCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/CashFlowCard.tsx @@ -4,29 +4,28 @@ import { useTranslation } from 'react-i18next'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { CashFlowWidget } from '@actual-app/core/types/models'; import { Bar, BarChart, LabelList } from 'recharts'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { CashFlowWidget } from 'loot-core/types/models'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { Change } from '#components/reports/Change'; +import { useRechartsAnimation } from '#components/reports/chart-theme'; +import { Container } from '#components/reports/Container'; +import { DateRange } from '#components/reports/DateRange'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportCard } from '#components/reports/ReportCard'; +import { ReportCardName } from '#components/reports/ReportCardName'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { simpleCashFlow } from '#components/reports/spreadsheets/cash-flow-spreadsheet'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; +import { useReport } from '#components/reports/useReport'; +import { useFormat } from '#hooks/useFormat'; import { defaultTimeFrame } from './CashFlow'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { Change } from '@desktop-client/components/reports/Change'; -import { useRechartsAnimation } from '@desktop-client/components/reports/chart-theme'; -import { Container } from '@desktop-client/components/reports/Container'; -import { DateRange } from '@desktop-client/components/reports/DateRange'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { ReportCardName } from '@desktop-client/components/reports/ReportCardName'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { simpleCashFlow } from '@desktop-client/components/reports/spreadsheets/cash-flow-spreadsheet'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { useFormat } from '@desktop-client/hooks/useFormat'; - type CustomLabelProps = { value?: number; name: string; diff --git a/packages/desktop-client/src/components/reports/reports/Crossover.tsx b/packages/desktop-client/src/components/reports/reports/Crossover.tsx index b883e419eb..bfb0001ef0 100644 --- a/packages/desktop-client/src/components/reports/reports/Crossover.tsx +++ b/packages/desktop-client/src/components/reports/reports/Crossover.tsx @@ -14,45 +14,40 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { CategoryEntity, CrossoverWidget, TimeFrame, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; -import { Link } from '@desktop-client/components/common/Link'; -import { EditablePageHeaderTitle } from '@desktop-client/components/EditablePageHeaderTitle'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { Checkbox } from '@desktop-client/components/forms'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { - MobilePageHeader, - Page, - PageHeader, -} from '@desktop-client/components/Page'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { AccountSelector } from '@desktop-client/components/reports/AccountSelector'; -import { CategorySelector } from '@desktop-client/components/reports/CategorySelector'; -import { CrossoverGraph } from '@desktop-client/components/reports/graphs/CrossoverGraph'; -import { Header } from '@desktop-client/components/reports/Header'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { createCrossoverSpreadsheet } from '@desktop-client/components/reports/spreadsheets/crossover-spreadsheet'; -import type { CrossoverData } from '@desktop-client/components/reports/spreadsheets/crossover-spreadsheet'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useDashboardWidget } from '@desktop-client/hooks/useDashboardWidget'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { useUpdateDashboardWidgetMutation } from '@desktop-client/reports/mutations'; +import { Link } from '#components/common/Link'; +import { EditablePageHeaderTitle } from '#components/EditablePageHeaderTitle'; +import { FinancialText } from '#components/FinancialText'; +import { Checkbox } from '#components/forms'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page, PageHeader } from '#components/Page'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { AccountSelector } from '#components/reports/AccountSelector'; +import { CategorySelector } from '#components/reports/CategorySelector'; +import { CrossoverGraph } from '#components/reports/graphs/CrossoverGraph'; +import { Header } from '#components/reports/Header'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { createCrossoverSpreadsheet } from '#components/reports/spreadsheets/crossover-spreadsheet'; +import type { CrossoverData } from '#components/reports/spreadsheets/crossover-spreadsheet'; +import { useReport } from '#components/reports/useReport'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { useDashboardWidget } from '#hooks/useDashboardWidget'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useNavigate } from '#hooks/useNavigate'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { useUpdateDashboardWidgetMutation } from '#reports/mutations'; export const defaultTimeFrame = { start: monthUtils.subMonths(monthUtils.currentMonth(), 120), diff --git a/packages/desktop-client/src/components/reports/reports/CrossoverCard.tsx b/packages/desktop-client/src/components/reports/reports/CrossoverCard.tsx index f0d824c155..5b05d8b9bc 100644 --- a/packages/desktop-client/src/components/reports/reports/CrossoverCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/CrossoverCard.tsx @@ -6,23 +6,25 @@ import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { + AccountEntity, + CrossoverWidget, +} from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { AccountEntity, CrossoverWidget } from 'loot-core/types/models'; - -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { CrossoverGraph } from '@desktop-client/components/reports/graphs/CrossoverGraph'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { ReportCardName } from '@desktop-client/components/reports/ReportCardName'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { createCrossoverSpreadsheet } from '@desktop-client/components/reports/spreadsheets/crossover-spreadsheet'; -import type { CrossoverData } from '@desktop-client/components/reports/spreadsheets/crossover-spreadsheet'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { CrossoverGraph } from '#components/reports/graphs/CrossoverGraph'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportCard } from '#components/reports/ReportCard'; +import { ReportCardName } from '#components/reports/ReportCardName'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { createCrossoverSpreadsheet } from '#components/reports/spreadsheets/crossover-spreadsheet'; +import type { CrossoverData } from '#components/reports/spreadsheets/crossover-spreadsheet'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; +import { useReport } from '#components/reports/useReport'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; type CrossoverCardProps = { widgetId: string; diff --git a/packages/desktop-client/src/components/reports/reports/CustomReport.tsx b/packages/desktop-client/src/components/reports/reports/CustomReport.tsx index ad6b84f2ab..35a0dd5752 100644 --- a/packages/desktop-client/src/components/reports/reports/CustomReport.tsx +++ b/packages/desktop-client/src/components/reports/reports/CustomReport.tsx @@ -9,10 +9,8 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import * as d from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { balanceTypeOpType, CategoryEntity, @@ -21,58 +19,52 @@ import type { RuleConditionEntity, sortByOpType, TransactionEntity, -} from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; -import type { TransObjectLiteral } from 'loot-core/types/util'; +} from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; +import type { TransObjectLiteral } from '@actual-app/core/types/util'; +import * as d from 'date-fns'; -import { Warning } from '@desktop-client/components/alerts'; -import { AppliedFilters } from '@desktop-client/components/filters/AppliedFilters'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { - MobilePageHeader, - Page, - PageHeader, -} from '@desktop-client/components/Page'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { ChooseGraph } from '@desktop-client/components/reports/ChooseGraph'; +import { Warning } from '#components/alerts'; +import { AppliedFilters } from '#components/filters/AppliedFilters'; +import { FinancialText } from '#components/FinancialText'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page, PageHeader } from '#components/Page'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { ChooseGraph } from '#components/reports/ChooseGraph'; import { defaultsGraphList, defaultsList, disabledGraphList, disabledLegendLabel, disabledList, -} from '@desktop-client/components/reports/disabledList'; -import { getLiveRange } from '@desktop-client/components/reports/getLiveRange'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportLegend } from '@desktop-client/components/reports/ReportLegend'; +} from '#components/reports/disabledList'; +import { getLiveRange } from '#components/reports/getLiveRange'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportLegend } from '#components/reports/ReportLegend'; import { defaultReport, ReportOptions, -} from '@desktop-client/components/reports/ReportOptions'; -import type { dateRangeProps } from '@desktop-client/components/reports/ReportOptions'; -import { ReportSidebar } from '@desktop-client/components/reports/ReportSidebar'; -import { ReportSummary } from '@desktop-client/components/reports/ReportSummary'; -import { ReportTopbar } from '@desktop-client/components/reports/ReportTopbar'; -import type { SavedStatus } from '@desktop-client/components/reports/SaveReportMenu'; -import { setSessionReport } from '@desktop-client/components/reports/setSessionReport'; -import { createCustomSpreadsheet } from '@desktop-client/components/reports/spreadsheets/custom-spreadsheet'; -import { createGroupedSpreadsheet } from '@desktop-client/components/reports/spreadsheets/grouped-spreadsheet'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { - calculateHasWarning, - fromDateRepr, -} from '@desktop-client/components/reports/util'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { useReport as useCustomReport } from '@desktop-client/hooks/useReport'; -import { useRuleConditionFilters } from '@desktop-client/hooks/useRuleConditionFilters'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; +} from '#components/reports/ReportOptions'; +import type { dateRangeProps } from '#components/reports/ReportOptions'; +import { ReportSidebar } from '#components/reports/ReportSidebar'; +import { ReportSummary } from '#components/reports/ReportSummary'; +import { ReportTopbar } from '#components/reports/ReportTopbar'; +import type { SavedStatus } from '#components/reports/SaveReportMenu'; +import { setSessionReport } from '#components/reports/setSessionReport'; +import { createCustomSpreadsheet } from '#components/reports/spreadsheets/custom-spreadsheet'; +import { createGroupedSpreadsheet } from '#components/reports/spreadsheets/grouped-spreadsheet'; +import { useReport } from '#components/reports/useReport'; +import { calculateHasWarning, fromDateRepr } from '#components/reports/util'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { useNavigate } from '#hooks/useNavigate'; +import { usePayees } from '#hooks/usePayees'; +import { useReport as useCustomReport } from '#hooks/useReport'; +import { useRuleConditionFilters } from '#hooks/useRuleConditionFilters'; +import { useSyncedPref } from '#hooks/useSyncedPref'; /** * Transform `selectedCategories` into `conditions`. diff --git a/packages/desktop-client/src/components/reports/reports/CustomReportListCards.tsx b/packages/desktop-client/src/components/reports/reports/CustomReportListCards.tsx index 98e7138448..830d9a86f8 100644 --- a/packages/desktop-client/src/components/reports/reports/CustomReportListCards.tsx +++ b/packages/desktop-client/src/components/reports/reports/CustomReportListCards.tsx @@ -7,27 +7,26 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { CustomReportEntity } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { CustomReportEntity } from 'loot-core/types/models'; +import { DateRange } from '#components/reports/DateRange'; +import { ReportCard } from '#components/reports/ReportCard'; +import { ReportCardName } from '#components/reports/ReportCardName'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; +import { calculateHasWarning } from '#components/reports/util'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { usePayees } from '#hooks/usePayees'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { useUpdateReportMutation } from '#reports/mutations'; import { GetCardData } from './GetCardData'; import { MissingReportCard } from './MissingReportCard'; -import { DateRange } from '@desktop-client/components/reports/DateRange'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { ReportCardName } from '@desktop-client/components/reports/ReportCardName'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; -import { calculateHasWarning } from '@desktop-client/components/reports/util'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { usePayees } from '@desktop-client/hooks/usePayees'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { useUpdateReportMutation } from '@desktop-client/reports/mutations'; - type CustomReportListCardsProps = { isEditing?: boolean; report?: CustomReportEntity; diff --git a/packages/desktop-client/src/components/reports/reports/Formula.tsx b/packages/desktop-client/src/components/reports/reports/Formula.tsx index 8b0b825a3d..f770d54089 100644 --- a/packages/desktop-client/src/components/reports/reports/Formula.tsx +++ b/packages/desktop-client/src/components/reports/reports/Formula.tsx @@ -10,26 +10,21 @@ import { Select } from '@actual-app/components/select'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { FormulaWidget } from '@actual-app/core/types/models'; -import type { FormulaWidget } from 'loot-core/types/models'; - -import { EditablePageHeaderTitle } from '@desktop-client/components/EditablePageHeaderTitle'; -import { QueryManager } from '@desktop-client/components/formula/QueryManager'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { - MobilePageHeader, - Page, - PageHeader, -} from '@desktop-client/components/Page'; -import { FormulaResult } from '@desktop-client/components/reports/FormulaResult'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { useDashboardWidget } from '@desktop-client/hooks/useDashboardWidget'; -import { useFormulaExecution } from '@desktop-client/hooks/useFormulaExecution'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useThemeColors } from '@desktop-client/hooks/useThemeColors'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { useUpdateDashboardWidgetMutation } from '@desktop-client/reports/mutations'; +import { EditablePageHeaderTitle } from '#components/EditablePageHeaderTitle'; +import { QueryManager } from '#components/formula/QueryManager'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page, PageHeader } from '#components/Page'; +import { FormulaResult } from '#components/reports/FormulaResult'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { useDashboardWidget } from '#hooks/useDashboardWidget'; +import { useFormulaExecution } from '#hooks/useFormulaExecution'; +import { useNavigate } from '#hooks/useNavigate'; +import { useThemeColors } from '#hooks/useThemeColors'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { useUpdateDashboardWidgetMutation } from '#reports/mutations'; const FormulaEditor = lazy(() => import('../../formula/FormulaEditor').then(module => ({ diff --git a/packages/desktop-client/src/components/reports/reports/FormulaCard.tsx b/packages/desktop-client/src/components/reports/reports/FormulaCard.tsx index 46c80c5c9a..a81103c327 100644 --- a/packages/desktop-client/src/components/reports/reports/FormulaCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/FormulaCard.tsx @@ -2,15 +2,14 @@ import { useMemo, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { View } from '@actual-app/components/view'; +import type { FormulaWidget } from '@actual-app/core/types/models'; -import type { FormulaWidget } from 'loot-core/types/models'; - -import { FormulaResult } from '@desktop-client/components/reports/FormulaResult'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { ReportCardName } from '@desktop-client/components/reports/ReportCardName'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; -import { useFormulaExecution } from '@desktop-client/hooks/useFormulaExecution'; -import { useThemeColors } from '@desktop-client/hooks/useThemeColors'; +import { FormulaResult } from '#components/reports/FormulaResult'; +import { ReportCard } from '#components/reports/ReportCard'; +import { ReportCardName } from '#components/reports/ReportCardName'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; +import { useFormulaExecution } from '#hooks/useFormulaExecution'; +import { useThemeColors } from '#hooks/useThemeColors'; type FormulaCardProps = { widgetId: string; diff --git a/packages/desktop-client/src/components/reports/reports/GetCardData.tsx b/packages/desktop-client/src/components/reports/reports/GetCardData.tsx index 676cbd098e..ff7b19f5d1 100644 --- a/packages/desktop-client/src/components/reports/reports/GetCardData.tsx +++ b/packages/desktop-client/src/components/reports/reports/GetCardData.tsx @@ -6,25 +6,24 @@ import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; - -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { AccountEntity, CategoryEntity, CategoryGroupEntity, CustomReportEntity, PayeeEntity, -} from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +} from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; -import { ChooseGraph } from '@desktop-client/components/reports/ChooseGraph'; -import { getLiveRange } from '@desktop-client/components/reports/getLiveRange'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportOptions } from '@desktop-client/components/reports/ReportOptions'; -import { createCustomSpreadsheet } from '@desktop-client/components/reports/spreadsheets/custom-spreadsheet'; -import { createGroupedSpreadsheet } from '@desktop-client/components/reports/spreadsheets/grouped-spreadsheet'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; +import { ChooseGraph } from '#components/reports/ChooseGraph'; +import { getLiveRange } from '#components/reports/getLiveRange'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportOptions } from '#components/reports/ReportOptions'; +import { createCustomSpreadsheet } from '#components/reports/spreadsheets/custom-spreadsheet'; +import { createGroupedSpreadsheet } from '#components/reports/spreadsheets/grouped-spreadsheet'; +import { useReport } from '#components/reports/useReport'; +import { useSyncedPref } from '#hooks/useSyncedPref'; function ErrorFallback() { return ( diff --git a/packages/desktop-client/src/components/reports/reports/MarkdownCard.tsx b/packages/desktop-client/src/components/reports/reports/MarkdownCard.tsx index f8596bda38..c80e392c33 100644 --- a/packages/desktop-client/src/components/reports/reports/MarkdownCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/MarkdownCard.tsx @@ -7,20 +7,19 @@ import { Menu } from '@actual-app/components/menu'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { MarkdownWidget } from '@actual-app/core/types/models'; import { css } from '@emotion/css'; import rehypeExternalLinks from 'rehype-external-links'; import remarkGfm from 'remark-gfm'; -import type { MarkdownWidget } from 'loot-core/types/models'; - -import { NON_DRAGGABLE_AREA_CLASS_NAME } from '@desktop-client/components/reports/constants'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; +import { NON_DRAGGABLE_AREA_CLASS_NAME } from '#components/reports/constants'; +import { ReportCard } from '#components/reports/ReportCard'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; import { markdownBaseStyles, remarkBreaks, sequentialNewlinesPlugin, -} from '@desktop-client/util/markdown'; +} from '#util/markdown'; const remarkPlugins = [sequentialNewlinesPlugin, remarkGfm, remarkBreaks]; diff --git a/packages/desktop-client/src/components/reports/reports/MissingReportCard.tsx b/packages/desktop-client/src/components/reports/reports/MissingReportCard.tsx index 9d70066d6c..01cc48f19e 100644 --- a/packages/desktop-client/src/components/reports/reports/MissingReportCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/MissingReportCard.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'react-i18next'; import { View } from '@actual-app/components/view'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; +import { ReportCard } from '#components/reports/ReportCard'; type MissingReportCardProps = { isEditing?: boolean; diff --git a/packages/desktop-client/src/components/reports/reports/NetWorth.tsx b/packages/desktop-client/src/components/reports/reports/NetWorth.tsx index 6a0bb6ff4b..497037bedc 100644 --- a/packages/desktop-client/src/components/reports/reports/NetWorth.tsx +++ b/packages/desktop-client/src/components/reports/reports/NetWorth.tsx @@ -17,40 +17,35 @@ import { Popover } from '@actual-app/components/popover'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { NetWorthWidget, TimeFrame } from '@actual-app/core/types/models'; import * as d from 'date-fns'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { NetWorthWidget, TimeFrame } from 'loot-core/types/models'; - -import { EditablePageHeaderTitle } from '@desktop-client/components/EditablePageHeaderTitle'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { - MobilePageHeader, - Page, - PageHeader, -} from '@desktop-client/components/Page'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { Change } from '@desktop-client/components/reports/Change'; -import { NetWorthGraph } from '@desktop-client/components/reports/graphs/NetWorthGraph'; -import { Header } from '@desktop-client/components/reports/Header'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportOptions } from '@desktop-client/components/reports/ReportOptions'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { createSpreadsheet as netWorthSpreadsheet } from '@desktop-client/components/reports/spreadsheets/net-worth-spreadsheet'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { fromDateRepr } from '@desktop-client/components/reports/util'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useDashboardWidget } from '@desktop-client/hooks/useDashboardWidget'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useRuleConditionFilters } from '@desktop-client/hooks/useRuleConditionFilters'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { useUpdateDashboardWidgetMutation } from '@desktop-client/reports/mutations'; +import { EditablePageHeaderTitle } from '#components/EditablePageHeaderTitle'; +import { FinancialText } from '#components/FinancialText'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page, PageHeader } from '#components/Page'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { Change } from '#components/reports/Change'; +import { NetWorthGraph } from '#components/reports/graphs/NetWorthGraph'; +import { Header } from '#components/reports/Header'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportOptions } from '#components/reports/ReportOptions'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { createSpreadsheet as netWorthSpreadsheet } from '#components/reports/spreadsheets/net-worth-spreadsheet'; +import { useReport } from '#components/reports/useReport'; +import { fromDateRepr } from '#components/reports/util'; +import { useAccounts } from '#hooks/useAccounts'; +import { useDashboardWidget } from '#hooks/useDashboardWidget'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useNavigate } from '#hooks/useNavigate'; +import { useRuleConditionFilters } from '#hooks/useRuleConditionFilters'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { useUpdateDashboardWidgetMutation } from '#reports/mutations'; export function NetWorth() { const params = useParams(); diff --git a/packages/desktop-client/src/components/reports/reports/NetWorthCard.tsx b/packages/desktop-client/src/components/reports/reports/NetWorthCard.tsx index 8198328003..2a4e500df0 100644 --- a/packages/desktop-client/src/components/reports/reports/NetWorthCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/NetWorthCard.tsx @@ -5,26 +5,28 @@ import { Block } from '@actual-app/components/block'; import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { styles } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { + AccountEntity, + NetWorthWidget, +} from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { AccountEntity, NetWorthWidget } from 'loot-core/types/models'; - -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { Change } from '@desktop-client/components/reports/Change'; -import { DateRange } from '@desktop-client/components/reports/DateRange'; -import { NetWorthGraph } from '@desktop-client/components/reports/graphs/NetWorthGraph'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { ReportCardName } from '@desktop-client/components/reports/ReportCardName'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { createSpreadsheet as netWorthSpreadsheet } from '@desktop-client/components/reports/spreadsheets/net-worth-spreadsheet'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { Change } from '#components/reports/Change'; +import { DateRange } from '#components/reports/DateRange'; +import { NetWorthGraph } from '#components/reports/graphs/NetWorthGraph'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportCard } from '#components/reports/ReportCard'; +import { ReportCardName } from '#components/reports/ReportCardName'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { createSpreadsheet as netWorthSpreadsheet } from '#components/reports/spreadsheets/net-worth-spreadsheet'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; +import { useReport } from '#components/reports/useReport'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useSyncedPref } from '#hooks/useSyncedPref'; type NetWorthCardProps = { widgetId: string; diff --git a/packages/desktop-client/src/components/reports/reports/Sankey.tsx b/packages/desktop-client/src/components/reports/reports/Sankey.tsx index 056e35e37a..5d05451f32 100644 --- a/packages/desktop-client/src/components/reports/reports/Sankey.tsx +++ b/packages/desktop-client/src/components/reports/reports/Sankey.tsx @@ -12,43 +12,38 @@ import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import * as d from 'date-fns'; -import type { SankeyData } from 'recharts/types/chart/Sankey'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { mapField } from 'loot-core/shared/rules'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { mapField } from '@actual-app/core/shared/rules'; import type { RuleConditionEntity, SankeyWidget, TimeFrame, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import * as d from 'date-fns'; +import type { SankeyData } from 'recharts/types/chart/Sankey'; -import { EditablePageHeaderTitle } from '@desktop-client/components/EditablePageHeaderTitle'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { - MobilePageHeader, - Page, - PageHeader, -} from '@desktop-client/components/Page'; -import { SankeyGraph } from '@desktop-client/components/reports/graphs/SankeyGraph'; -import { Header } from '@desktop-client/components/reports/Header'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ModeButton } from '@desktop-client/components/reports/ModeButton'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { createSpreadsheet as sankeySpreadsheet } from '@desktop-client/components/reports/spreadsheets/sankey-spreadsheet'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { fromDateRepr } from '@desktop-client/components/reports/util'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useDashboardWidget } from '@desktop-client/hooks/useDashboardWidget'; -import { useFormatList } from '@desktop-client/hooks/useFormatList'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useRuleConditionFilters } from '@desktop-client/hooks/useRuleConditionFilters'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { useUpdateDashboardWidgetMutation } from '@desktop-client/reports/mutations'; +import { EditablePageHeaderTitle } from '#components/EditablePageHeaderTitle'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page, PageHeader } from '#components/Page'; +import { SankeyGraph } from '#components/reports/graphs/SankeyGraph'; +import { Header } from '#components/reports/Header'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ModeButton } from '#components/reports/ModeButton'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { createSpreadsheet as sankeySpreadsheet } from '#components/reports/spreadsheets/sankey-spreadsheet'; +import { useReport } from '#components/reports/useReport'; +import { fromDateRepr } from '#components/reports/util'; +import { useCategories } from '#hooks/useCategories'; +import { useDashboardWidget } from '#hooks/useDashboardWidget'; +import { useFormatList } from '#hooks/useFormatList'; +import { useLocale } from '#hooks/useLocale'; +import { useNavigate } from '#hooks/useNavigate'; +import { useRuleConditionFilters } from '#hooks/useRuleConditionFilters'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { useUpdateDashboardWidgetMutation } from '#reports/mutations'; export function Sankey() { const params = useParams(); diff --git a/packages/desktop-client/src/components/reports/reports/SankeyCard.tsx b/packages/desktop-client/src/components/reports/reports/SankeyCard.tsx index a29a0bb961..a964d9d252 100644 --- a/packages/desktop-client/src/components/reports/reports/SankeyCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/SankeyCard.tsx @@ -5,24 +5,23 @@ import { useTranslation } from 'react-i18next'; import { Block } from '@actual-app/components/block'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { SankeyWidget } from '@actual-app/core/types/models'; import * as d from 'date-fns'; -import type { SankeyWidget } from 'loot-core/types/models'; - -import { SankeyGraph } from '@desktop-client/components/reports/graphs/SankeyGraph'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { ReportCardName } from '@desktop-client/components/reports/ReportCardName'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; +import { SankeyGraph } from '#components/reports/graphs/SankeyGraph'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportCard } from '#components/reports/ReportCard'; +import { ReportCardName } from '#components/reports/ReportCardName'; +import { calculateTimeRange } from '#components/reports/reportRanges'; import { compactSankeyData, createSpreadsheet as sankeySpreadsheet, -} from '@desktop-client/components/reports/spreadsheets/sankey-spreadsheet'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useResizeObserver } from '@desktop-client/hooks/useResizeObserver'; +} from '#components/reports/spreadsheets/sankey-spreadsheet'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; +import { useReport } from '#components/reports/useReport'; +import { useCategories } from '#hooks/useCategories'; +import { useLocale } from '#hooks/useLocale'; +import { useResizeObserver } from '#hooks/useResizeObserver'; type SankeyCardProps = { widgetId: string; diff --git a/packages/desktop-client/src/components/reports/reports/Spending.tsx b/packages/desktop-client/src/components/reports/reports/Spending.tsx index 94468ae263..f573f7b74e 100644 --- a/packages/desktop-client/src/components/reports/reports/Spending.tsx +++ b/packages/desktop-client/src/components/reports/reports/Spending.tsx @@ -14,42 +14,37 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; -import * as d from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { RuleConditionEntity, SpendingWidget, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import * as d from 'date-fns'; -import { EditablePageHeaderTitle } from '@desktop-client/components/EditablePageHeaderTitle'; -import { AppliedFilters } from '@desktop-client/components/filters/AppliedFilters'; -import { FilterButton } from '@desktop-client/components/filters/FiltersMenu'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { - MobilePageHeader, - Page, - PageHeader, -} from '@desktop-client/components/Page'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { SpendingGraph } from '@desktop-client/components/reports/graphs/SpendingGraph'; -import { LegendItem } from '@desktop-client/components/reports/LegendItem'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ModeButton } from '@desktop-client/components/reports/ModeButton'; -import { calculateSpendingReportTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { createSpendingSpreadsheet } from '@desktop-client/components/reports/spreadsheets/spending-spreadsheet'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { fromDateRepr } from '@desktop-client/components/reports/util'; -import { useDashboardWidget } from '@desktop-client/hooks/useDashboardWidget'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useRuleConditionFilters } from '@desktop-client/hooks/useRuleConditionFilters'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { useUpdateDashboardWidgetMutation } from '@desktop-client/reports/mutations'; +import { EditablePageHeaderTitle } from '#components/EditablePageHeaderTitle'; +import { AppliedFilters } from '#components/filters/AppliedFilters'; +import { FilterButton } from '#components/filters/FiltersMenu'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page, PageHeader } from '#components/Page'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { SpendingGraph } from '#components/reports/graphs/SpendingGraph'; +import { LegendItem } from '#components/reports/LegendItem'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ModeButton } from '#components/reports/ModeButton'; +import { calculateSpendingReportTimeRange } from '#components/reports/reportRanges'; +import { createSpendingSpreadsheet } from '#components/reports/spreadsheets/spending-spreadsheet'; +import { useReport } from '#components/reports/useReport'; +import { fromDateRepr } from '#components/reports/util'; +import { useDashboardWidget } from '#hooks/useDashboardWidget'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useNavigate } from '#hooks/useNavigate'; +import { useRuleConditionFilters } from '#hooks/useRuleConditionFilters'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { useUpdateDashboardWidgetMutation } from '#reports/mutations'; export function Spending() { const params = useParams(); diff --git a/packages/desktop-client/src/components/reports/reports/SpendingCard.tsx b/packages/desktop-client/src/components/reports/reports/SpendingCard.tsx index cc1db4fa44..18f3e0b5e1 100644 --- a/packages/desktop-client/src/components/reports/reports/SpendingCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/SpendingCard.tsx @@ -5,23 +5,22 @@ import { Block } from '@actual-app/components/block'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { SpendingWidget } from '@actual-app/core/types/models'; -import * as monthUtils from 'loot-core/shared/months'; -import type { SpendingWidget } from 'loot-core/types/models'; - -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { DateRange } from '@desktop-client/components/reports/DateRange'; -import { SpendingGraph } from '@desktop-client/components/reports/graphs/SpendingGraph'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { ReportCardName } from '@desktop-client/components/reports/ReportCardName'; -import { calculateSpendingReportTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { createSpendingSpreadsheet } from '@desktop-client/components/reports/spreadsheets/spending-spreadsheet'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { DateRange } from '#components/reports/DateRange'; +import { SpendingGraph } from '#components/reports/graphs/SpendingGraph'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportCard } from '#components/reports/ReportCard'; +import { ReportCardName } from '#components/reports/ReportCardName'; +import { calculateSpendingReportTimeRange } from '#components/reports/reportRanges'; +import { createSpendingSpreadsheet } from '#components/reports/spreadsheets/spending-spreadsheet'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; +import { useReport } from '#components/reports/useReport'; +import { useFormat } from '#hooks/useFormat'; +import { useSyncedPref } from '#hooks/useSyncedPref'; type SpendingCardProps = { widgetId: string; diff --git a/packages/desktop-client/src/components/reports/reports/Summary.tsx b/packages/desktop-client/src/components/reports/reports/Summary.tsx index 1534aafd4d..c43b4c02dd 100644 --- a/packages/desktop-client/src/components/reports/reports/Summary.tsx +++ b/packages/desktop-client/src/components/reports/reports/Summary.tsx @@ -14,44 +14,39 @@ import { import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { parseISO } from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { SummaryContent, SummaryWidget, TimeFrame, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { parseISO } from 'date-fns'; -import { EditablePageHeaderTitle } from '@desktop-client/components/EditablePageHeaderTitle'; -import { AppliedFilters } from '@desktop-client/components/filters/AppliedFilters'; -import { FilterButton } from '@desktop-client/components/filters/FiltersMenu'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { Checkbox } from '@desktop-client/components/forms'; -import { MobileBackButton } from '@desktop-client/components/mobile/MobileBackButton'; -import { - MobilePageHeader, - Page, - PageHeader, -} from '@desktop-client/components/Page'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { Header } from '@desktop-client/components/reports/Header'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { summarySpreadsheet } from '@desktop-client/components/reports/spreadsheets/summary-spreadsheet'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { fromDateRepr } from '@desktop-client/components/reports/util'; -import { FieldSelect } from '@desktop-client/components/rules/RuleEditor'; -import { useDashboardWidget } from '@desktop-client/hooks/useDashboardWidget'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useRuleConditionFilters } from '@desktop-client/hooks/useRuleConditionFilters'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { useUpdateDashboardWidgetMutation } from '@desktop-client/reports/mutations'; +import { EditablePageHeaderTitle } from '#components/EditablePageHeaderTitle'; +import { AppliedFilters } from '#components/filters/AppliedFilters'; +import { FilterButton } from '#components/filters/FiltersMenu'; +import { FinancialText } from '#components/FinancialText'; +import { Checkbox } from '#components/forms'; +import { MobileBackButton } from '#components/mobile/MobileBackButton'; +import { MobilePageHeader, Page, PageHeader } from '#components/Page'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { Header } from '#components/reports/Header'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { summarySpreadsheet } from '#components/reports/spreadsheets/summary-spreadsheet'; +import { useReport } from '#components/reports/useReport'; +import { fromDateRepr } from '#components/reports/util'; +import { FieldSelect } from '#components/rules/RuleEditor'; +import { useDashboardWidget } from '#hooks/useDashboardWidget'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { useNavigate } from '#hooks/useNavigate'; +import { useRuleConditionFilters } from '#hooks/useRuleConditionFilters'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { useUpdateDashboardWidgetMutation } from '#reports/mutations'; export function Summary() { const params = useParams(); diff --git a/packages/desktop-client/src/components/reports/reports/SummaryCard.tsx b/packages/desktop-client/src/components/reports/reports/SummaryCard.tsx index 70d995f4a6..a809e844c6 100644 --- a/packages/desktop-client/src/components/reports/reports/SummaryCard.tsx +++ b/packages/desktop-client/src/components/reports/reports/SummaryCard.tsx @@ -2,21 +2,23 @@ import React, { useEffect, useMemo, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { + SummaryContent, + SummaryWidget, +} from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { SummaryContent, SummaryWidget } from 'loot-core/types/models'; - -import { DateRange } from '@desktop-client/components/reports/DateRange'; -import { LoadingIndicator } from '@desktop-client/components/reports/LoadingIndicator'; -import { ReportCard } from '@desktop-client/components/reports/ReportCard'; -import { ReportCardName } from '@desktop-client/components/reports/ReportCardName'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; -import { summarySpreadsheet } from '@desktop-client/components/reports/spreadsheets/summary-spreadsheet'; -import { SummaryNumber } from '@desktop-client/components/reports/SummaryNumber'; -import { useDashboardWidgetCopyMenu } from '@desktop-client/components/reports/useDashboardWidgetCopyMenu'; -import { useReport } from '@desktop-client/components/reports/useReport'; -import { useLocale } from '@desktop-client/hooks/useLocale'; +import { DateRange } from '#components/reports/DateRange'; +import { LoadingIndicator } from '#components/reports/LoadingIndicator'; +import { ReportCard } from '#components/reports/ReportCard'; +import { ReportCardName } from '#components/reports/ReportCardName'; +import { calculateTimeRange } from '#components/reports/reportRanges'; +import { summarySpreadsheet } from '#components/reports/spreadsheets/summary-spreadsheet'; +import { SummaryNumber } from '#components/reports/SummaryNumber'; +import { useDashboardWidgetCopyMenu } from '#components/reports/useDashboardWidgetCopyMenu'; +import { useReport } from '#components/reports/useReport'; +import { useLocale } from '#hooks/useLocale'; type SummaryCardProps = { widgetId: string; diff --git a/packages/desktop-client/src/components/reports/setSessionReport.ts b/packages/desktop-client/src/components/reports/setSessionReport.ts index 16fdcbbe87..c3ae82c82d 100644 --- a/packages/desktop-client/src/components/reports/setSessionReport.ts +++ b/packages/desktop-client/src/components/reports/setSessionReport.ts @@ -1,4 +1,4 @@ -import type { RuleConditionEntity } from 'loot-core/types/models'; +import type { RuleConditionEntity } from '@actual-app/core/types/models'; export const setSessionReport = ( propName: string, diff --git a/packages/desktop-client/src/components/reports/spreadsheets/age-of-money-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/age-of-money-spreadsheet.ts index 2fccf5a812..773ec174e5 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/age-of-money-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/age-of-money-spreadsheet.ts @@ -1,15 +1,14 @@ -import * as d from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; import type { AgeOfMoneyGranularity, RuleConditionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import * as d from 'date-fns'; -import { runAll } from '@desktop-client/components/reports/util'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; +import { runAll } from '#components/reports/util'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; export type AgeOfMoneyData = { graphData: Array<{ diff --git a/packages/desktop-client/src/components/reports/spreadsheets/budget-analysis-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/budget-analysis-spreadsheet.ts index ddd8c9a294..d48e9c3cea 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/budget-analysis-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/budget-analysis-spreadsheet.ts @@ -1,15 +1,15 @@ // @ts-strict-ignore -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { CategoryEntity, RuleConditionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; import type { BudgetMonthCell } from './budgetMonthCell'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; - type BudgetAnalysisIntervalData = { date: string; budgeted: number; diff --git a/packages/desktop-client/src/components/reports/spreadsheets/budgetDataQuery.ts b/packages/desktop-client/src/components/reports/spreadsheets/budgetDataQuery.ts index 90a151ec5c..4574a2d4b4 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/budgetDataQuery.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/budgetDataQuery.ts @@ -1,17 +1,17 @@ -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { Handlers } from 'loot-core/types/handlers'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { Handlers } from '@actual-app/core/types/handlers'; import type { CategoryEntity, CategoryGroupEntity, RuleConditionEntity, -} from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +} from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; + +import type { QueryDataEntity } from '#components/reports/ReportOptions'; import type { BudgetMonthCell } from './budgetMonthCell'; -import type { QueryDataEntity } from '@desktop-client/components/reports/ReportOptions'; - type BudgetDataConditionsOp = 'and' | 'or'; async function mapWithConcurrency( diff --git a/packages/desktop-client/src/components/reports/spreadsheets/budgetMonthCell.ts b/packages/desktop-client/src/components/reports/spreadsheets/budgetMonthCell.ts index fbe0187d60..97e036d7d8 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/budgetMonthCell.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/budgetMonthCell.ts @@ -1,4 +1,4 @@ -import type { Handlers } from 'loot-core/types/handlers'; +import type { Handlers } from '@actual-app/core/types/handlers'; export type BudgetMonthCell = Awaited< | ReturnType diff --git a/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts b/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts index 3508e37cd8..f65e77a8e7 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/calculateLegend.ts @@ -1,13 +1,12 @@ import { theme } from '@actual-app/components/theme'; - import type { balanceTypeOpType, GroupedEntity, IntervalEntity, LegendEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; -import { getColorScale } from '@desktop-client/components/reports/chart-theme'; +import { getColorScale } from '#components/reports/chart-theme'; export function calculateLegend( intervalData: IntervalEntity[], diff --git a/packages/desktop-client/src/components/reports/spreadsheets/calendar-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/calendar-spreadsheet.ts index 7a8c33fabf..cb3bf4a639 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/calendar-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/calendar-spreadsheet.ts @@ -1,13 +1,12 @@ +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import type { RuleConditionEntity } from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; import * as d from 'date-fns'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import type { RuleConditionEntity } from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; - -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; +import { aqlQuery } from '#queries/aqlQuery'; export type CalendarDataType = { date: Date; 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 d97e490823..1c113a38ea 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 @@ -2,19 +2,18 @@ import React from 'react'; import type { JSX } from 'react'; import { AlignedText } from '@actual-app/components/aligned-text'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import type { RuleConditionEntity } from '@actual-app/core/types/models'; import type { Locale } from 'date-fns'; import * as d from 'date-fns'; import { t } from 'i18next'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import type { RuleConditionEntity } from 'loot-core/types/models'; - -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { indexCashFlow, runAll } from '@desktop-client/components/reports/util'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; +import { FinancialText } from '#components/FinancialText'; +import { indexCashFlow, runAll } from '#components/reports/util'; +import type { FormatType } from '#hooks/useFormat'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; export function simpleCashFlow( startMonth: string, diff --git a/packages/desktop-client/src/components/reports/spreadsheets/crossover-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/crossover-spreadsheet.ts index 9186889eda..7958c2d75d 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/crossover-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/crossover-spreadsheet.ts @@ -1,11 +1,10 @@ +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import type { AccountEntity } from '@actual-app/core/types/models'; import * as d from 'date-fns'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import type { AccountEntity } from 'loot-core/types/models'; - -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; +import { aqlQuery } from '#queries/aqlQuery'; type MonthlyAgg = { date: string; amount: number }; 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 3fe0ce141e..b744487b4d 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/custom-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/custom-spreadsheet.ts @@ -1,7 +1,5 @@ -import * as d from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { AccountEntity, balanceTypeOpType, @@ -13,8 +11,20 @@ import type { PayeeEntity, RuleConditionEntity, sortByOpType, -} from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +} from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; +import * as d from 'date-fns'; + +import { + categoryLists, + groupBySelections, + ReportOptions, +} from '#components/reports/ReportOptions'; +import type { + QueryDataEntity, + UncategorizedEntity, +} from '#components/reports/ReportOptions'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; import { calculateLegend } from './calculateLegend'; import { fetchSpreadsheetQueryData } from './fetchSpreadsheetQueryData'; @@ -28,17 +38,6 @@ import { trimIntervalsToRange, } from './trimIntervals'; -import { - categoryLists, - groupBySelections, - ReportOptions, -} from '@desktop-client/components/reports/ReportOptions'; -import type { - QueryDataEntity, - UncategorizedEntity, -} from '@desktop-client/components/reports/ReportOptions'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; - export type createCustomSpreadsheetProps = { startDate: string; endDate: string; diff --git a/packages/desktop-client/src/components/reports/spreadsheets/fetchSpreadsheetQueryData.ts b/packages/desktop-client/src/components/reports/spreadsheets/fetchSpreadsheetQueryData.ts index 26d1650d6a..6a1aa2c1cc 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/fetchSpreadsheetQueryData.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/fetchSpreadsheetQueryData.ts @@ -3,15 +3,15 @@ import type { CategoryEntity, CategoryGroupEntity, RuleConditionEntity, -} from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +} from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; + +import type { QueryDataEntity } from '#components/reports/ReportOptions'; +import { aqlQuery } from '#queries/aqlQuery'; import { fetchBudgetData } from './budgetDataQuery'; import { makeQuery } from './makeQuery'; -import type { QueryDataEntity } from '@desktop-client/components/reports/ReportOptions'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; - export async function fetchSpreadsheetQueryData({ balanceTypeOp, startDate, diff --git a/packages/desktop-client/src/components/reports/spreadsheets/filterEmptyRows.ts b/packages/desktop-client/src/components/reports/spreadsheets/filterEmptyRows.ts index 1d4d79acf2..e123a03e95 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/filterEmptyRows.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/filterEmptyRows.ts @@ -1,4 +1,7 @@ -import type { balanceTypeOpType, GroupedEntity } from 'loot-core/types/models'; +import type { + balanceTypeOpType, + GroupedEntity, +} from '@actual-app/core/types/models'; export function filterEmptyRows({ showEmpty, diff --git a/packages/desktop-client/src/components/reports/spreadsheets/filterHiddenItems.ts b/packages/desktop-client/src/components/reports/spreadsheets/filterHiddenItems.ts index 1f59bea546..09069bf7a5 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/filterHiddenItems.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/filterHiddenItems.ts @@ -1,7 +1,7 @@ import type { QueryDataEntity, UncategorizedEntity, -} from '@desktop-client/components/reports/ReportOptions'; +} from '#components/reports/ReportOptions'; export function filterHiddenItems( item: UncategorizedEntity, 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 6d3d211afe..d896cf3e4e 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/grouped-spreadsheet.ts @@ -1,6 +1,13 @@ -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import type { GroupedEntity } from 'loot-core/types/models'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { GroupedEntity } from '@actual-app/core/types/models'; + +import { + categoryLists, + ReportOptions, +} from '#components/reports/ReportOptions'; +import type { QueryDataEntity } from '#components/reports/ReportOptions'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; import type { createCustomSpreadsheetProps } from './custom-spreadsheet'; import { fetchSpreadsheetQueryData } from './fetchSpreadsheetQueryData'; @@ -12,13 +19,6 @@ import { trimGroupedDataIntervals, } from './trimIntervals'; -import { - categoryLists, - ReportOptions, -} from '@desktop-client/components/reports/ReportOptions'; -import type { QueryDataEntity } from '@desktop-client/components/reports/ReportOptions'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; - export function createGroupedSpreadsheet({ startDate, endDate, diff --git a/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts b/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts index 9c82bf57ab..1196648d21 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/makeQuery.ts @@ -1,6 +1,6 @@ -import { q } from 'loot-core/shared/query'; +import { q } from '@actual-app/core/shared/query'; -import { ReportOptions } from '@desktop-client/components/reports/ReportOptions'; +import { ReportOptions } from '#components/reports/ReportOptions'; export function makeQuery( name: string, 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 e66bd0622f..2cf8e3c9f7 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,19 +1,18 @@ +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import type { + AccountEntity, + RuleConditionEntity, +} from '@actual-app/core/types/models'; import * as d from 'date-fns'; import type { Locale } from 'date-fns'; import keyBy from 'lodash/keyBy'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import type { - AccountEntity, - RuleConditionEntity, -} from 'loot-core/types/models'; - -import { ReportOptions } from '@desktop-client/components/reports/ReportOptions'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; +import { ReportOptions } from '#components/reports/ReportOptions'; +import type { FormatType } from '#hooks/useFormat'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; +import { aqlQuery } from '#queries/aqlQuery'; type Balance = { date: string; diff --git a/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts b/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts index 204e2abdc7..4486280b83 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/recalculate.ts @@ -1,12 +1,15 @@ -import * as monthUtils from 'loot-core/shared/months'; -import type { GroupedEntity, IntervalEntity } from 'loot-core/types/models'; - -import { filterHiddenItems } from './filterHiddenItems'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { + GroupedEntity, + IntervalEntity, +} from '@actual-app/core/types/models'; import type { QueryDataEntity, UncategorizedEntity, -} from '@desktop-client/components/reports/ReportOptions'; +} from '#components/reports/ReportOptions'; + +import { filterHiddenItems } from './filterHiddenItems'; type recalculateProps = { item: UncategorizedEntity; 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 20f002bf32..d5e26f36ba 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/sankey-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/sankey-spreadsheet.ts @@ -1,13 +1,13 @@ -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; import type { CategoryGroupEntity, RuleConditionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; +import { aqlQuery } from '#queries/aqlQuery'; type BudgetMonthCategory = { id: string; diff --git a/packages/desktop-client/src/components/reports/spreadsheets/sortData.ts b/packages/desktop-client/src/components/reports/spreadsheets/sortData.ts index 0725924458..9e06ac7a09 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/sortData.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/sortData.ts @@ -2,7 +2,7 @@ import type { balanceTypeOpType, GroupedEntity, sortByOpType, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; const reverseSort: Partial> = { asc: 'desc', diff --git a/packages/desktop-client/src/components/reports/spreadsheets/spending-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/spending-spreadsheet.ts index 94eae3501e..46405a61e8 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/spending-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/spending-spreadsheet.ts @@ -1,20 +1,19 @@ -// @ts-strict-ignore -import keyBy from 'lodash/keyBy'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; import type { RuleConditionEntity, SpendingEntity, SpendingMonthEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +// @ts-strict-ignore +import keyBy from 'lodash/keyBy'; + +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; +import { aqlQuery } from '#queries/aqlQuery'; import { makeQuery } from './makeQuery'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; - type createSpendingSpreadsheetProps = { conditions?: RuleConditionEntity[]; conditionsOp?: string; diff --git a/packages/desktop-client/src/components/reports/spreadsheets/summary-spreadsheet.ts b/packages/desktop-client/src/components/reports/spreadsheets/summary-spreadsheet.ts index 530b93add7..bba2a08bfc 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/summary-spreadsheet.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/summary-spreadsheet.ts @@ -1,16 +1,15 @@ -import * as d from 'date-fns'; -import type { Locale } from 'date-fns'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; import type { RuleConditionEntity, SummaryContent, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import * as d from 'date-fns'; +import type { Locale } from 'date-fns'; -import type { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; +import type { useSpreadsheet } from '#hooks/useSpreadsheet'; +import { aqlQuery } from '#queries/aqlQuery'; export function summarySpreadsheet( start: string, diff --git a/packages/desktop-client/src/components/reports/spreadsheets/trimIntervals.ts b/packages/desktop-client/src/components/reports/spreadsheets/trimIntervals.ts index 4fad86ef16..5ddb28402f 100644 --- a/packages/desktop-client/src/components/reports/spreadsheets/trimIntervals.ts +++ b/packages/desktop-client/src/components/reports/spreadsheets/trimIntervals.ts @@ -2,7 +2,7 @@ import type { balanceTypeOpType, GroupedEntity, IntervalEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; function isEmptyForMetric( interval: IntervalEntity, diff --git a/packages/desktop-client/src/components/reports/useDashboardWidgetCopyMenu.ts b/packages/desktop-client/src/components/reports/useDashboardWidgetCopyMenu.ts index 4426f67711..5d7489c50d 100644 --- a/packages/desktop-client/src/components/reports/useDashboardWidgetCopyMenu.ts +++ b/packages/desktop-client/src/components/reports/useDashboardWidgetCopyMenu.ts @@ -3,8 +3,8 @@ import { useTranslation } from 'react-i18next'; import type { Menu } from '@actual-app/components/menu'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; type DashboardWidgetCopyMenuResult = { /** Menu items to add to the card's menu */ diff --git a/packages/desktop-client/src/components/reports/useReport.ts b/packages/desktop-client/src/components/reports/useReport.ts index e585615e75..b97fc1b73c 100644 --- a/packages/desktop-client/src/components/reports/useReport.ts +++ b/packages/desktop-client/src/components/reports/useReport.ts @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react'; -import { useSpreadsheet } from '@desktop-client/hooks/useSpreadsheet'; +import { useSpreadsheet } from '#hooks/useSpreadsheet'; export function useReport( sheetName: string, diff --git a/packages/desktop-client/src/components/reports/util.ts b/packages/desktop-client/src/components/reports/util.ts index 596931e4ff..a733e25eff 100644 --- a/packages/desktop-client/src/components/reports/util.ts +++ b/packages/desktop-client/src/components/reports/util.ts @@ -1,13 +1,13 @@ // @ts-strict-ignore -import type { Query } from 'loot-core/shared/query'; +import type { Query } from '@actual-app/core/shared/query'; import type { AccountEntity, CategoryEntity, PayeeEntity, RuleConditionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; +import { aqlQuery } from '#queries/aqlQuery'; export function fromDateRepr(date: string): string { return date.slice(0, 7); diff --git a/packages/desktop-client/src/components/responsive/index.tsx b/packages/desktop-client/src/components/responsive/index.tsx index 214ebad6a0..57486d9e72 100644 --- a/packages/desktop-client/src/components/responsive/index.tsx +++ b/packages/desktop-client/src/components/responsive/index.tsx @@ -1,10 +1,10 @@ import { useResponsive } from '@actual-app/components/hooks/useResponsive'; +import { LoadComponent } from '#components/util/LoadComponent'; + import type * as NarrowComponents from './narrow'; import type * as WideComponents from './wide'; -import { LoadComponent } from '@desktop-client/components/util/LoadComponent'; - const loadNarrow = () => import(/* webpackChunkName: "narrow-components" */ './narrow'); const loadWide = () => diff --git a/packages/desktop-client/src/components/rules/ActionExpression.tsx b/packages/desktop-client/src/components/rules/ActionExpression.tsx index 3382111aa4..648f5094ba 100644 --- a/packages/desktop-client/src/components/rules/ActionExpression.tsx +++ b/packages/desktop-client/src/components/rules/ActionExpression.tsx @@ -5,12 +5,11 @@ import { useTranslation } from 'react-i18next'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - import { friendlyOp, getAllocationMethods, mapField, -} from 'loot-core/shared/rules'; +} from '@actual-app/core/shared/rules'; import type { AppendNoteRuleActionEntity, DeleteTransactionRuleActionEntity, @@ -19,7 +18,7 @@ import type { RuleActionEntity, SetRuleActionEntity, SetSplitAmountRuleActionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; import { ScheduleValue } from './ScheduleValue'; import { Value } from './Value'; diff --git a/packages/desktop-client/src/components/rules/ConditionExpression.tsx b/packages/desktop-client/src/components/rules/ConditionExpression.tsx index 9c7e972338..0b054543b4 100644 --- a/packages/desktop-client/src/components/rules/ConditionExpression.tsx +++ b/packages/desktop-client/src/components/rules/ConditionExpression.tsx @@ -4,8 +4,7 @@ import type { CSSProperties } from 'react'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import { friendlyOp, mapField } from 'loot-core/shared/rules'; +import { friendlyOp, mapField } from '@actual-app/core/shared/rules'; import { Value } from './Value'; diff --git a/packages/desktop-client/src/components/rules/FormulaActionEditor.tsx b/packages/desktop-client/src/components/rules/FormulaActionEditor.tsx index e8a4e61a26..1f468699e9 100644 --- a/packages/desktop-client/src/components/rules/FormulaActionEditor.tsx +++ b/packages/desktop-client/src/components/rules/FormulaActionEditor.tsx @@ -4,7 +4,7 @@ import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; const FormulaEditor = lazy(() => - import('@desktop-client/components/formula/FormulaEditor').then(module => ({ + import('#components/formula/FormulaEditor').then(module => ({ default: module.FormulaEditor, })), ); diff --git a/packages/desktop-client/src/components/rules/RuleEditor.tsx b/packages/desktop-client/src/components/rules/RuleEditor.tsx index 55f30f206e..4a9a4eb313 100644 --- a/packages/desktop-client/src/components/rules/RuleEditor.tsx +++ b/packages/desktop-client/src/components/rules/RuleEditor.tsx @@ -22,12 +22,9 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; -import { css } from '@emotion/css'; -import { v4 as uuid } from 'uuid'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; import { FIELD_TYPES, friendlyOp, @@ -39,35 +36,34 @@ import { mapField, parse, unparse, -} from 'loot-core/shared/rules'; -import type { ScheduleStatusType } from 'loot-core/shared/schedules'; +} from '@actual-app/core/shared/rules'; +import type { ScheduleStatusType } from '@actual-app/core/shared/schedules'; import type { NewRuleEntity, RuleActionEntity, RuleEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { css } from '@emotion/css'; +import { v4 as uuid } from 'uuid'; + +import { FinancialText } from '#components/FinancialText'; +import { StatusBadge } from '#components/schedules/StatusBadge'; +import { SimpleTransactionsTable } from '#components/transactions/SimpleTransactionsTable'; +import { BetweenAmountInput } from '#components/util/AmountInput'; +import { DisplayId } from '#components/util/DisplayId'; +import { GenericInput } from '#components/util/GenericInput'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { useFormat } from '#hooks/useFormat'; +import { useSchedules } from '#hooks/useSchedules'; +import { SelectedProvider, useSelected } from '#hooks/useSelected'; +import { addNotification } from '#notifications/notificationsSlice'; +import { aqlQuery } from '#queries/aqlQuery'; +import { useDispatch } from '#redux'; +import { disableUndo, enableUndo } from '#undo'; import { FormulaActionEditor } from './FormulaActionEditor'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { StatusBadge } from '@desktop-client/components/schedules/StatusBadge'; -import { SimpleTransactionsTable } from '@desktop-client/components/transactions/SimpleTransactionsTable'; -import { BetweenAmountInput } from '@desktop-client/components/util/AmountInput'; -import { DisplayId } from '@desktop-client/components/util/DisplayId'; -import { GenericInput } from '@desktop-client/components/util/GenericInput'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; -import { - SelectedProvider, - useSelected, -} from '@desktop-client/hooks/useSelected'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; -import { useDispatch } from '@desktop-client/redux'; -import { disableUndo, enableUndo } from '@desktop-client/undo'; - function updateValue(array, value, update) { return array.map(v => (v === value ? update() : v)); } diff --git a/packages/desktop-client/src/components/rules/RuleRow.tsx b/packages/desktop-client/src/components/rules/RuleRow.tsx index 6a8e89d9da..59fa363805 100644 --- a/packages/desktop-client/src/components/rules/RuleRow.tsx +++ b/packages/desktop-client/src/components/rules/RuleRow.tsx @@ -11,18 +11,17 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { friendlyOp, translateRuleStage } from '@actual-app/core/shared/rules'; +import type { RuleEntity } from '@actual-app/core/types/models'; -import { friendlyOp, translateRuleStage } from 'loot-core/shared/rules'; -import type { RuleEntity } from 'loot-core/types/models'; +import { Cell, Field, Row, SelectCell } from '#components/table'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { useSelectedDispatch } from '#hooks/useSelected'; +import { groupActionsBySplitIndex } from '#util/ruleUtils'; import { ActionExpression } from './ActionExpression'; import { ConditionExpression } from './ConditionExpression'; -import { Cell, Field, Row, SelectCell } from '@desktop-client/components/table'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { useSelectedDispatch } from '@desktop-client/hooks/useSelected'; -import { groupActionsBySplitIndex } from '@desktop-client/util/ruleUtils'; - type RuleRowProps = { rule: RuleEntity; hovered?: boolean; diff --git a/packages/desktop-client/src/components/rules/RulesHeader.tsx b/packages/desktop-client/src/components/rules/RulesHeader.tsx index fb0c8dfe72..4ffd804467 100644 --- a/packages/desktop-client/src/components/rules/RulesHeader.tsx +++ b/packages/desktop-client/src/components/rules/RulesHeader.tsx @@ -1,15 +1,8 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; -import { - Cell, - SelectCell, - TableHeader, -} from '@desktop-client/components/table'; -import { - useSelectedDispatch, - useSelectedItems, -} from '@desktop-client/hooks/useSelected'; +import { Cell, SelectCell, TableHeader } from '#components/table'; +import { useSelectedDispatch, useSelectedItems } from '#hooks/useSelected'; export function RulesHeader() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/rules/RulesList.tsx b/packages/desktop-client/src/components/rules/RulesList.tsx index 553fbd4932..b7583cd8cf 100644 --- a/packages/desktop-client/src/components/rules/RulesList.tsx +++ b/packages/desktop-client/src/components/rules/RulesList.tsx @@ -2,8 +2,7 @@ import React from 'react'; import { View } from '@actual-app/components/view'; - -import type { RuleEntity } from 'loot-core/types/models'; +import type { RuleEntity } from '@actual-app/core/types/models'; import { RuleRow } from './RuleRow'; diff --git a/packages/desktop-client/src/components/rules/ScheduleValue.tsx b/packages/desktop-client/src/components/rules/ScheduleValue.tsx index 828c966cdb..21cb6692b6 100644 --- a/packages/desktop-client/src/components/rules/ScheduleValue.tsx +++ b/packages/desktop-client/src/components/rules/ScheduleValue.tsx @@ -3,16 +3,15 @@ import { useTranslation } from 'react-i18next'; import { AnimatedLoading } from '@actual-app/components/icons/AnimatedLoading'; import { View } from '@actual-app/components/view'; +import { q } from '@actual-app/core/shared/query'; +import { describeSchedule } from '@actual-app/core/shared/schedules'; +import type { ScheduleEntity } from '@actual-app/core/types/models'; -import { q } from 'loot-core/shared/query'; -import { describeSchedule } from 'loot-core/shared/schedules'; -import type { ScheduleEntity } from 'loot-core/types/models'; +import { usePayeesById } from '#hooks/usePayees'; +import { useSchedules } from '#hooks/useSchedules'; import { Value } from './Value'; -import { usePayeesById } from '@desktop-client/hooks/usePayees'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; - type ScheduleValueProps = { value: ScheduleEntity; }; diff --git a/packages/desktop-client/src/components/rules/Value.tsx b/packages/desktop-client/src/components/rules/Value.tsx index 67cfe39c9e..9c4fd81bf4 100644 --- a/packages/desktop-client/src/components/rules/Value.tsx +++ b/packages/desktop-client/src/components/rules/Value.tsx @@ -5,19 +5,18 @@ import { useTranslation } from 'react-i18next'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; +import { getMonthYearFormat } from '@actual-app/core/shared/months'; +import { getRecurringDescription } from '@actual-app/core/shared/schedules'; import { format as formatDate, parseISO } from 'date-fns'; -import { getMonthYearFormat } from 'loot-core/shared/months'; -import { getRecurringDescription } from 'loot-core/shared/schedules'; - -import { Link } from '@desktop-client/components/common/Link'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { usePayees } from '@desktop-client/hooks/usePayees'; +import { Link } from '#components/common/Link'; +import { FinancialText } from '#components/FinancialText'; +import { useAccounts } from '#hooks/useAccounts'; +import { useCategories } from '#hooks/useCategories'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useFormat } from '#hooks/useFormat'; +import { useLocale } from '#hooks/useLocale'; +import { usePayees } from '#hooks/usePayees'; type ValueProps = { value: T; diff --git a/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx b/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx index 7e477dfc84..b4023c59a1 100644 --- a/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx +++ b/packages/desktop-client/src/components/schedules/DiscoverSchedules.tsx @@ -8,37 +8,26 @@ import { SpaceBetween } from '@actual-app/components/space-between'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { q } from '@actual-app/core/shared/query'; +import { getRecurringDescription } from '@actual-app/core/shared/schedules'; +import type { DiscoverScheduleEntity } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import { q } from 'loot-core/shared/query'; -import { getRecurringDescription } from 'loot-core/shared/schedules'; -import type { DiscoverScheduleEntity } from 'loot-core/types/models'; - -import { ScheduleAmountCell } from './SchedulesTable'; - -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { - Field, - Row, - SelectCell, - Table, - TableHeader, -} from '@desktop-client/components/table'; -import { DisplayId } from '@desktop-client/components/util/DisplayId'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { Field, Row, SelectCell, Table, TableHeader } from '#components/table'; +import { DisplayId } from '#components/util/DisplayId'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useLocale } from '#hooks/useLocale'; import { SelectedProvider, useSelected, useSelectedDispatch, useSelectedItems, -} from '@desktop-client/hooks/useSelected'; -import { useSendPlatformRequest } from '@desktop-client/hooks/useSendPlatformRequest'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; +} from '#hooks/useSelected'; +import { useSendPlatformRequest } from '#hooks/useSendPlatformRequest'; +import { aqlQuery } from '#queries/aqlQuery'; + +import { ScheduleAmountCell } from './SchedulesTable'; const ROW_HEIGHT = 43; diff --git a/packages/desktop-client/src/components/schedules/PostsOfflineNotification.tsx b/packages/desktop-client/src/components/schedules/PostsOfflineNotification.tsx index 6264cad050..b839d18622 100644 --- a/packages/desktop-client/src/components/schedules/PostsOfflineNotification.tsx +++ b/packages/desktop-client/src/components/schedules/PostsOfflineNotification.tsx @@ -7,19 +7,14 @@ import { Paragraph } from '@actual-app/components/paragraph'; import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { PayeeEntity } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import type { PayeeEntity } from 'loot-core/types/models'; - -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { DisplayId } from '@desktop-client/components/util/DisplayId'; -import { useFormatList } from '@desktop-client/hooks/useFormatList'; -import { popModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { DisplayId } from '#components/util/DisplayId'; +import { useFormatList } from '#hooks/useFormatList'; +import { popModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; export function PostsOfflineNotification() { const { t, i18n } = useTranslation(); diff --git a/packages/desktop-client/src/components/schedules/ScheduleEditForm.tsx b/packages/desktop-client/src/components/schedules/ScheduleEditForm.tsx index 3788c15db5..4881f35685 100644 --- a/packages/desktop-client/src/components/schedules/ScheduleEditForm.tsx +++ b/packages/desktop-client/src/components/schedules/ScheduleEditForm.tsx @@ -11,33 +11,25 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; import type { RecurConfig, ScheduleEntity, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; -import { - Checkbox, - FormField, - FormLabel, -} from '@desktop-client/components/forms'; -import { OpSelect } from '@desktop-client/components/rules/RuleEditor'; -import { DateSelect } from '@desktop-client/components/select/DateSelect'; -import { RecurringSchedulePicker } from '@desktop-client/components/select/RecurringSchedulePicker'; -import { SelectedItemsButton } from '@desktop-client/components/table'; -import { SimpleTransactionsTable } from '@desktop-client/components/transactions/SimpleTransactionsTable'; -import { - AmountInput, - BetweenAmountInput, -} from '@desktop-client/components/util/AmountInput'; -import { GenericInput } from '@desktop-client/components/util/GenericInput'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { SelectedProvider } from '@desktop-client/hooks/useSelected'; -import type { Actions } from '@desktop-client/hooks/useSelected'; +import { Checkbox, FormField, FormLabel } from '#components/forms'; +import { OpSelect } from '#components/rules/RuleEditor'; +import { DateSelect } from '#components/select/DateSelect'; +import { RecurringSchedulePicker } from '#components/select/RecurringSchedulePicker'; +import { SelectedItemsButton } from '#components/table'; +import { SimpleTransactionsTable } from '#components/transactions/SimpleTransactionsTable'; +import { AmountInput, BetweenAmountInput } from '#components/util/AmountInput'; +import { GenericInput } from '#components/util/GenericInput'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useLocale } from '#hooks/useLocale'; +import { SelectedProvider } from '#hooks/useSelected'; +import type { Actions } from '#hooks/useSelected'; export type ScheduleFormFields = { payee: null | string; diff --git a/packages/desktop-client/src/components/schedules/ScheduleEditModal.tsx b/packages/desktop-client/src/components/schedules/ScheduleEditModal.tsx index c22c37d9b5..e2b69bc7e4 100644 --- a/packages/desktop-client/src/components/schedules/ScheduleEditModal.tsx +++ b/packages/desktop-client/src/components/schedules/ScheduleEditModal.tsx @@ -4,28 +4,26 @@ import { Trans, useTranslation } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { SpaceBetween } from '@actual-app/components/space-between'; +import { send, sendCatch } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import type { + RecurConfig, + ScheduleEntity, +} from '@actual-app/core/types/models'; -import { send, sendCatch } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import type { RecurConfig, ScheduleEntity } from 'loot-core/types/models'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { usePayeesById } from '#hooks/usePayees'; +import { useScheduleEdit } from '#hooks/useScheduleEdit'; +import { useSelected } from '#hooks/useSelected'; +import { pushModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { aqlQuery } from '#queries/aqlQuery'; +import { useDispatch } from '#redux'; import { updateScheduleConditions } from './schedule-edit-utils'; import { ScheduleEditForm } from './ScheduleEditForm'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { usePayeesById } from '@desktop-client/hooks/usePayees'; -import { useScheduleEdit } from '@desktop-client/hooks/useScheduleEdit'; -import { useSelected } from '@desktop-client/hooks/useSelected'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; -import { useDispatch } from '@desktop-client/redux'; - type ScheduleEditModalProps = Extract< ModalType, { name: 'schedule-edit' } diff --git a/packages/desktop-client/src/components/schedules/ScheduleLink.tsx b/packages/desktop-client/src/components/schedules/ScheduleLink.tsx index 1582d302d3..1b3fcc38fa 100644 --- a/packages/desktop-client/src/components/schedules/ScheduleLink.tsx +++ b/packages/desktop-client/src/components/schedules/ScheduleLink.tsx @@ -7,23 +7,18 @@ import { SvgAdd } from '@actual-app/components/icons/v0'; import { InitialFocus } from '@actual-app/components/initial-focus'; import { Text } from '@actual-app/components/text'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { q } from '@actual-app/core/shared/query'; -import { send } from 'loot-core/platform/client/connection'; -import { q } from 'loot-core/shared/query'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { Search } from '#components/common/Search'; +import { useSchedules } from '#hooks/useSchedules'; +import { pushModal } from '#modals/modalsSlice'; +import type { Modal as ModalType } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; import { ROW_HEIGHT, SchedulesTable } from './SchedulesTable'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { Search } from '@desktop-client/components/common/Search'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal as ModalType } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; - type ScheduleLinkProps = Extract< ModalType, { name: 'schedule-link' } diff --git a/packages/desktop-client/src/components/schedules/SchedulesTable.tsx b/packages/desktop-client/src/components/schedules/SchedulesTable.tsx index ebe33b3d28..e85f85e421 100644 --- a/packages/desktop-client/src/components/schedules/SchedulesTable.tsx +++ b/packages/desktop-client/src/components/schedules/SchedulesTable.tsx @@ -12,33 +12,26 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import { format as monthUtilFormat } from 'loot-core/shared/months'; -import { getNormalisedString } from 'loot-core/shared/normalisation'; -import { getScheduledAmount } from 'loot-core/shared/schedules'; +import { format as monthUtilFormat } from '@actual-app/core/shared/months'; +import { getNormalisedString } from '@actual-app/core/shared/normalisation'; +import { getScheduledAmount } from '@actual-app/core/shared/schedules'; import type { ScheduleStatuses, ScheduleStatusType, -} from 'loot-core/shared/schedules'; -import type { ScheduleEntity } from 'loot-core/types/models'; +} from '@actual-app/core/shared/schedules'; +import type { ScheduleEntity } from '@actual-app/core/types/models'; + +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { Cell, Field, Row, Table, TableHeader } from '#components/table'; +import { DisplayId } from '#components/util/DisplayId'; +import { useAccounts } from '#hooks/useAccounts'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useFormat } from '#hooks/useFormat'; +import { usePayees } from '#hooks/usePayees'; import { StatusBadge } from './StatusBadge'; - -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { - Cell, - Field, - Row, - Table, - TableHeader, -} from '@desktop-client/components/table'; -import { DisplayId } from '@desktop-client/components/util/DisplayId'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { usePayees } from '@desktop-client/hooks/usePayees'; type SchedulesTableProps = { isLoading?: boolean; schedules: readonly ScheduleEntity[]; diff --git a/packages/desktop-client/src/components/schedules/StatusBadge.tsx b/packages/desktop-client/src/components/schedules/StatusBadge.tsx index 653b340ad5..25f5a8e51f 100644 --- a/packages/desktop-client/src/components/schedules/StatusBadge.tsx +++ b/packages/desktop-client/src/components/schedules/StatusBadge.tsx @@ -13,10 +13,9 @@ import { import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import { getStatusLabel } from 'loot-core/shared/schedules'; -import type { ScheduleStatusType } from 'loot-core/shared/schedules'; -import { titleFirst } from 'loot-core/shared/util'; +import { getStatusLabel } from '@actual-app/core/shared/schedules'; +import type { ScheduleStatusType } from '@actual-app/core/shared/schedules'; +import { titleFirst } from '@actual-app/core/shared/util'; // Consists of Schedule Statuses + Transaction statuses export type StatusTypes = diff --git a/packages/desktop-client/src/components/schedules/UpcomingLength.tsx b/packages/desktop-client/src/components/schedules/UpcomingLength.tsx index 111f55109a..4911ce5a98 100644 --- a/packages/desktop-client/src/components/schedules/UpcomingLength.tsx +++ b/packages/desktop-client/src/components/schedules/UpcomingLength.tsx @@ -5,18 +5,13 @@ import { Button } from '@actual-app/components/button'; import { Paragraph } from '@actual-app/components/paragraph'; import { Select } from '@actual-app/components/select'; import { View } from '@actual-app/components/view'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +import { Modal, ModalCloseButton, ModalHeader } from '#components/common/Modal'; +import { useSyncedPref } from '#hooks/useSyncedPref'; import { CustomUpcomingLength } from './CustomUpcomingLength'; -import { - Modal, - ModalCloseButton, - ModalHeader, -} from '@desktop-client/components/common/Modal'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; - function useUpcomingLengthOptions() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/schedules/index.tsx b/packages/desktop-client/src/components/schedules/index.tsx index d8f0b7f07a..587855c997 100644 --- a/packages/desktop-client/src/components/schedules/index.tsx +++ b/packages/desktop-client/src/components/schedules/index.tsx @@ -4,20 +4,19 @@ import { Trans, useTranslation } from 'react-i18next'; import { Button } from '@actual-app/components/button'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { send } from '@actual-app/core/platform/client/connection'; +import { q } from '@actual-app/core/shared/query'; +import type { ScheduleEntity } from '@actual-app/core/types/models'; -import { send } from 'loot-core/platform/client/connection'; -import { q } from 'loot-core/shared/query'; -import type { ScheduleEntity } from 'loot-core/types/models'; +import { Search } from '#components/common/Search'; +import { Page } from '#components/Page'; +import { useSchedules } from '#hooks/useSchedules'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; import { SchedulesTable } from './SchedulesTable'; import type { ScheduleItemAction } from './SchedulesTable'; -import { Search } from '@desktop-client/components/common/Search'; -import { Page } from '@desktop-client/components/Page'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; - export function Schedules() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/schedules/schedule-edit-utils.ts b/packages/desktop-client/src/components/schedules/schedule-edit-utils.ts index b277e644cf..ffe48ff1b0 100644 --- a/packages/desktop-client/src/components/schedules/schedule-edit-utils.ts +++ b/packages/desktop-client/src/components/schedules/schedule-edit-utils.ts @@ -1,8 +1,10 @@ +import { extractScheduleConds } from '@actual-app/core/shared/schedules'; +import type { + RuleConditionOp, + ScheduleEntity, +} from '@actual-app/core/types/models'; import { t } from 'i18next'; -import { extractScheduleConds } from 'loot-core/shared/schedules'; -import type { RuleConditionOp, ScheduleEntity } from 'loot-core/types/models'; - import type { ScheduleFormFields } from './ScheduleEditForm'; export function updateScheduleConditions( diff --git a/packages/desktop-client/src/components/select/DateSelect.tsx b/packages/desktop-client/src/components/select/DateSelect.tsx index 7120b05ed7..c7ad7140c4 100644 --- a/packages/desktop-client/src/components/select/DateSelect.tsx +++ b/packages/desktop-client/src/components/select/DateSelect.tsx @@ -23,28 +23,26 @@ import { styles } from '@actual-app/components/styles'; import type { CSSProperties } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { css } from '@emotion/css'; -import { addDays, format, isValid, parse, parseISO, subDays } from 'date-fns'; -import type { Locale } from 'date-fns'; -import Pikaday from 'pikaday'; - import { currentDate, getDayMonthFormat, getDayMonthRegex, getShortYearFormat, getShortYearRegex, -} from 'loot-core/shared/months'; - +} from '@actual-app/core/shared/months'; +import { css } from '@emotion/css'; +import { addDays, format, isValid, parse, parseISO, subDays } from 'date-fns'; +import type { Locale } from 'date-fns'; +import Pikaday from 'pikaday'; import 'pikaday/css/pikaday.css'; +import { InputField } from '#components/mobile/MobileForms'; +import { useLocale } from '#hooks/useLocale'; +import { useMergedRefs } from '#hooks/useMergedRefs'; +import { useSyncedPref } from '#hooks/useSyncedPref'; + import DateSelectLeft from './DateSelect.left.png'; import DateSelectRight from './DateSelect.right.png'; -import { InputField } from '@desktop-client/components/mobile/MobileForms'; -import { useLocale } from '@desktop-client/hooks/useLocale'; -import { useMergedRefs } from '@desktop-client/hooks/useMergedRefs'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; - const pickerStyles: CSSProperties = { '& .pika-single.actual-date-picker': { color: theme.calendarText, diff --git a/packages/desktop-client/src/components/select/RecurringSchedulePicker.tsx b/packages/desktop-client/src/components/select/RecurringSchedulePicker.tsx index 12754aee16..4e8231ed7b 100644 --- a/packages/desktop-client/src/components/select/RecurringSchedulePicker.tsx +++ b/packages/desktop-client/src/components/select/RecurringSchedulePicker.tsx @@ -14,20 +14,22 @@ import { SpaceBetween } from '@actual-app/components/space-between'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { sendCatch } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { getRecurringDescription } from '@actual-app/core/shared/schedules'; +import type { RecurConfig, RecurPattern } from '@actual-app/core/types/models'; +import type { + TransObjectLiteral, + WithRequired, +} from '@actual-app/core/types/util'; -import { sendCatch } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { getRecurringDescription } from 'loot-core/shared/schedules'; -import type { RecurConfig, RecurPattern } from 'loot-core/types/models'; -import type { TransObjectLiteral, WithRequired } from 'loot-core/types/util'; +import { Modal } from '#components/common/Modal'; +import { Checkbox } from '#components/forms'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useLocale } from '#hooks/useLocale'; import { DateSelect } from './DateSelect'; -import { Modal } from '@desktop-client/components/common/Modal'; -import { Checkbox } from '@desktop-client/components/forms'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useLocale } from '@desktop-client/hooks/useLocale'; - // ex: There is no 6th Friday of the Month const MAX_DAY_OF_WEEK_INTERVAL = 5; diff --git a/packages/desktop-client/src/components/settings/AuthSettings.test.tsx b/packages/desktop-client/src/components/settings/AuthSettings.test.tsx index 5039dcfdc8..6b00304362 100644 --- a/packages/desktop-client/src/components/settings/AuthSettings.test.tsx +++ b/packages/desktop-client/src/components/settings/AuthSettings.test.tsx @@ -1,19 +1,16 @@ import { render, screen } from '@testing-library/react'; import { vi } from 'vitest'; +import { useLoginMethod, useMultiuserEnabled } from '#components/ServerContext'; +import { useSyncServerStatus } from '#hooks/useSyncServerStatus'; +import { TestProviders } from '#mocks'; + import { AuthSettings } from './AuthSettings'; -import { - useLoginMethod, - useMultiuserEnabled, -} from '@desktop-client/components/ServerContext'; -import { useSyncServerStatus } from '@desktop-client/hooks/useSyncServerStatus'; -import { TestProviders } from '@desktop-client/mocks'; - -vi.mock('@desktop-client/hooks/useSyncServerStatus', () => ({ +vi.mock('#hooks/useSyncServerStatus', () => ({ useSyncServerStatus: vi.fn(), })); -vi.mock('@desktop-client/components/ServerContext', () => ({ +vi.mock('#components/ServerContext', () => ({ useMultiuserEnabled: vi.fn(), useLoginMethod: vi.fn(), })); diff --git a/packages/desktop-client/src/components/settings/AuthSettings.tsx b/packages/desktop-client/src/components/settings/AuthSettings.tsx index cbf4eb8f60..0e1ef59790 100644 --- a/packages/desktop-client/src/components/settings/AuthSettings.tsx +++ b/packages/desktop-client/src/components/settings/AuthSettings.tsx @@ -7,15 +7,12 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { Setting } from './UI'; +import { useLoginMethod, useMultiuserEnabled } from '#components/ServerContext'; +import { useSyncServerStatus } from '#hooks/useSyncServerStatus'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; -import { - useLoginMethod, - useMultiuserEnabled, -} from '@desktop-client/components/ServerContext'; -import { useSyncServerStatus } from '@desktop-client/hooks/useSyncServerStatus'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { Setting } from './UI'; export function AuthSettings() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/settings/BudgetTypeSettings.tsx b/packages/desktop-client/src/components/settings/BudgetTypeSettings.tsx index 632c541054..362382f27d 100644 --- a/packages/desktop-client/src/components/settings/BudgetTypeSettings.tsx +++ b/packages/desktop-client/src/components/settings/BudgetTypeSettings.tsx @@ -3,14 +3,13 @@ import { Trans } from 'react-i18next'; import { ButtonWithLoading } from '@actual-app/components/button'; import { Text } from '@actual-app/components/text'; +import { send } from '@actual-app/core/platform/client/connection'; -import { send } from 'loot-core/platform/client/connection'; +import { Link } from '#components/common/Link'; +import { useSyncedPref } from '#hooks/useSyncedPref'; import { Setting } from './UI'; -import { Link } from '@desktop-client/components/common/Link'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; - export function BudgetTypeSettings() { const [budgetType = 'envelope', setBudgetType] = useSyncedPref('budgetType'); const [isLoading, setIsLoading] = useState(false); diff --git a/packages/desktop-client/src/components/settings/Currency.tsx b/packages/desktop-client/src/components/settings/Currency.tsx index be7fa61f88..dc4fcc2b71 100644 --- a/packages/desktop-client/src/components/settings/Currency.tsx +++ b/packages/desktop-client/src/components/settings/Currency.tsx @@ -5,15 +5,14 @@ import { Select } from '@actual-app/components/select'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { currencies, getCurrency } from '@actual-app/core/shared/currencies'; import { css } from '@emotion/css'; -import { currencies, getCurrency } from 'loot-core/shared/currencies'; +import { Checkbox } from '#components/forms'; +import { useSyncedPref } from '#hooks/useSyncedPref'; import { Column, Setting } from './UI'; -import { Checkbox } from '@desktop-client/components/forms'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; - export function CurrencySettings() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/settings/Encryption.tsx b/packages/desktop-client/src/components/settings/Encryption.tsx index c649a155c8..2dd3ee672b 100644 --- a/packages/desktop-client/src/components/settings/Encryption.tsx +++ b/packages/desktop-client/src/components/settings/Encryption.tsx @@ -5,13 +5,13 @@ import { Button } from '@actual-app/components/button'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; -import { Setting } from './UI'; +import { Link } from '#components/common/Link'; +import { useServerURL } from '#components/ServerContext'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; -import { Link } from '@desktop-client/components/common/Link'; -import { useServerURL } from '@desktop-client/components/ServerContext'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { Setting } from './UI'; export function EncryptionSettings() { const dispatch = useDispatch(); diff --git a/packages/desktop-client/src/components/settings/Experimental.tsx b/packages/desktop-client/src/components/settings/Experimental.tsx index 1572d2a188..3de21078f6 100644 --- a/packages/desktop-client/src/components/settings/Experimental.tsx +++ b/packages/desktop-client/src/components/settings/Experimental.tsx @@ -5,24 +5,20 @@ import { Trans } from 'react-i18next'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { FeatureFlag, ServerPrefs } from '@actual-app/core/types/prefs'; -import type { FeatureFlag, ServerPrefs } from 'loot-core/types/prefs'; +import { useAuth } from '#auth/AuthProvider'; +import { Permissions } from '#auth/types'; +import { Link } from '#components/common/Link'; +import { Checkbox } from '#components/forms'; +import { useLoginMethod, useMultiuserEnabled } from '#components/ServerContext'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { useServerPref } from '#hooks/useServerPref'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { useSyncServerStatus } from '#hooks/useSyncServerStatus'; import { Setting } from './UI'; -import { useAuth } from '@desktop-client/auth/AuthProvider'; -import { Permissions } from '@desktop-client/auth/types'; -import { Link } from '@desktop-client/components/common/Link'; -import { Checkbox } from '@desktop-client/components/forms'; -import { - useLoginMethod, - useMultiuserEnabled, -} from '@desktop-client/components/ServerContext'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { useServerPref } from '@desktop-client/hooks/useServerPref'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { useSyncServerStatus } from '@desktop-client/hooks/useSyncServerStatus'; - type FeatureToggleProps = { flag: FeatureFlag; disableToggle?: boolean; diff --git a/packages/desktop-client/src/components/settings/Export.tsx b/packages/desktop-client/src/components/settings/Export.tsx index 790d44e8a9..617a48f2fe 100644 --- a/packages/desktop-client/src/components/settings/Export.tsx +++ b/packages/desktop-client/src/components/settings/Export.tsx @@ -5,14 +5,13 @@ import { Block } from '@actual-app/components/block'; import { ButtonWithLoading } from '@actual-app/components/button'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; +import { send } from '@actual-app/core/platform/client/connection'; import { format } from 'date-fns'; -import { send } from 'loot-core/platform/client/connection'; +import { useMetadataPref } from '#hooks/useMetadataPref'; import { Setting } from './UI'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; - export function ExportBudget() { const { t } = useTranslation(); const [isLoading, setIsLoading] = useState(false); diff --git a/packages/desktop-client/src/components/settings/Format.tsx b/packages/desktop-client/src/components/settings/Format.tsx index 2464044e05..e1e660fa98 100644 --- a/packages/desktop-client/src/components/settings/Format.tsx +++ b/packages/desktop-client/src/components/settings/Format.tsx @@ -7,19 +7,18 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { tokens } from '@actual-app/components/tokens'; import { View } from '@actual-app/components/view'; +import { numberFormats } from '@actual-app/core/shared/util'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; import { css } from '@emotion/css'; -import { numberFormats } from 'loot-core/shared/util'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +import { Checkbox } from '#components/forms'; +import { useSidebar } from '#components/sidebar/SidebarProvider'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useDaysOfWeek } from '#hooks/useDaysOfWeek'; +import { useSyncedPref } from '#hooks/useSyncedPref'; import { Column, Setting } from './UI'; -import { Checkbox } from '@desktop-client/components/forms'; -import { useSidebar } from '@desktop-client/components/sidebar/SidebarProvider'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useDaysOfWeek } from '@desktop-client/hooks/useDaysOfWeek'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; - const dateFormats: { value: SyncedPrefs['dateFormat']; label: string }[] = [ { value: 'MM/dd/yyyy', label: 'MM/DD/YYYY' }, { value: 'dd/MM/yyyy', label: 'DD/MM/YYYY' }, diff --git a/packages/desktop-client/src/components/settings/LanguageSettings.tsx b/packages/desktop-client/src/components/settings/LanguageSettings.tsx index 5c2f1f765c..25d1a83d96 100644 --- a/packages/desktop-client/src/components/settings/LanguageSettings.tsx +++ b/packages/desktop-client/src/components/settings/LanguageSettings.tsx @@ -7,11 +7,11 @@ import type { SelectOption } from '@actual-app/components/select'; import { Text } from '@actual-app/components/text'; import type { TFunction } from 'i18next'; -import { Setting } from './UI'; +import { Link } from '#components/common/Link'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { availableLanguages, setI18NextLanguage } from '#i18n'; -import { Link } from '@desktop-client/components/common/Link'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { availableLanguages, setI18NextLanguage } from '@desktop-client/i18n'; +import { Setting } from './UI'; const languageDisplayNameOverride: { [key: string]: string } = { 'pt-BR': 'Português (Brasil)', diff --git a/packages/desktop-client/src/components/settings/RepairTransactions.tsx b/packages/desktop-client/src/components/settings/RepairTransactions.tsx index efedbe77fa..36bfb6bbf9 100644 --- a/packages/desktop-client/src/components/settings/RepairTransactions.tsx +++ b/packages/desktop-client/src/components/settings/RepairTransactions.tsx @@ -6,9 +6,8 @@ import { Paragraph } from '@actual-app/components/paragraph'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; - -import { send } from 'loot-core/platform/client/connection'; -import type { Handlers } from 'loot-core/types/handlers'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { Handlers } from '@actual-app/core/types/handlers'; import { Setting } from './UI'; diff --git a/packages/desktop-client/src/components/settings/Reset.tsx b/packages/desktop-client/src/components/settings/Reset.tsx index 740382f266..d09582f226 100644 --- a/packages/desktop-client/src/components/settings/Reset.tsx +++ b/packages/desktop-client/src/components/settings/Reset.tsx @@ -3,15 +3,14 @@ import { Trans } from 'react-i18next'; import { ButtonWithLoading } from '@actual-app/components/button'; import { Text } from '@actual-app/components/text'; +import { send } from '@actual-app/core/platform/client/connection'; -import { send } from 'loot-core/platform/client/connection'; +import { resetSync } from '#app/appSlice'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { useDispatch } from '#redux'; import { Setting } from './UI'; -import { resetSync } from '@desktop-client/app/appSlice'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { useDispatch } from '@desktop-client/redux'; - export function ResetCache() { const [resetting, setResetting] = useState(false); diff --git a/packages/desktop-client/src/components/settings/ThemeInstaller.test.tsx b/packages/desktop-client/src/components/settings/ThemeInstaller.test.tsx index 60f6d279eb..9eab34240f 100644 --- a/packages/desktop-client/src/components/settings/ThemeInstaller.test.tsx +++ b/packages/desktop-client/src/components/settings/ThemeInstaller.test.tsx @@ -2,17 +2,17 @@ import { render, screen, waitFor } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { beforeEach, describe, expect, it, vi } from 'vitest'; -import { ThemeInstaller } from './ThemeInstaller'; - -import { useThemeCatalog } from '@desktop-client/hooks/useThemeCatalog'; +import { useThemeCatalog } from '#hooks/useThemeCatalog'; import { fetchThemeCss, generateThemeId, validateThemeCss, -} from '@desktop-client/style/customThemes'; +} from '#style/customThemes'; -vi.mock('@desktop-client/style/customThemes', async () => { - const actual = await vi.importActual('@desktop-client/style/customThemes'); +import { ThemeInstaller } from './ThemeInstaller'; + +vi.mock('#style/customThemes', async () => { + const actual = await vi.importActual('#style/customThemes'); return { ...actual, fetchThemeCss: vi.fn(), @@ -30,7 +30,7 @@ vi.mock('@desktop-client/style/customThemes', async () => { }; }); -vi.mock('@desktop-client/hooks/useThemeCatalog', () => ({ +vi.mock('#hooks/useThemeCatalog', () => ({ useThemeCatalog: vi.fn(), })); diff --git a/packages/desktop-client/src/components/settings/ThemeInstaller.tsx b/packages/desktop-client/src/components/settings/ThemeInstaller.tsx index 0097412fa6..345004762f 100644 --- a/packages/desktop-client/src/components/settings/ThemeInstaller.tsx +++ b/packages/desktop-client/src/components/settings/ThemeInstaller.tsx @@ -12,11 +12,9 @@ import { TextOneLine } from '@actual-app/components/text-one-line'; import { theme as themeStyle } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { ColorPalette } from './ColorPalette'; - -import { Link } from '@desktop-client/components/common/Link'; -import { FixedSizeList } from '@desktop-client/components/FixedSizeList'; -import { useThemeCatalog } from '@desktop-client/hooks/useThemeCatalog'; +import { Link } from '#components/common/Link'; +import { FixedSizeList } from '#components/FixedSizeList'; +import { useThemeCatalog } from '#hooks/useThemeCatalog'; import { embedThemeFonts, extractRepoOwner, @@ -24,11 +22,10 @@ import { generateThemeId, normalizeGitHubRepo, validateThemeCss, -} from '@desktop-client/style/customThemes'; -import type { - CatalogTheme, - InstalledTheme, -} from '@desktop-client/style/customThemes'; +} from '#style/customThemes'; +import type { CatalogTheme, InstalledTheme } from '#style/customThemes'; + +import { ColorPalette } from './ColorPalette'; // Theme item dimensions const ITEMS_PER_ROW = 3; diff --git a/packages/desktop-client/src/components/settings/Themes.tsx b/packages/desktop-client/src/components/settings/Themes.tsx index 1b2e369841..e25f2c9dbc 100644 --- a/packages/desktop-client/src/components/settings/Themes.tsx +++ b/packages/desktop-client/src/components/settings/Themes.tsx @@ -7,27 +7,26 @@ import { Text } from '@actual-app/components/text'; import { theme as themeStyle } from '@actual-app/components/theme'; import { tokens } from '@actual-app/components/tokens'; import { View } from '@actual-app/components/view'; +import type { DarkTheme, Theme } from '@actual-app/core/types/prefs'; import { css } from '@emotion/css'; -import type { DarkTheme, Theme } from 'loot-core/types/prefs'; - -import { ThemeInstaller } from './ThemeInstaller'; -import { Column, Setting } from './UI'; - -import { useSidebar } from '@desktop-client/components/sidebar/SidebarProvider'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; +import { useSidebar } from '#components/sidebar/SidebarProvider'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { useGlobalPref } from '#hooks/useGlobalPref'; import { darkThemeOptions, themeOptions, usePreferredDarkTheme, useTheme, -} from '@desktop-client/style'; +} from '#style'; import { parseInstalledTheme, serializeInstalledTheme, -} from '@desktop-client/style/customThemes'; -import type { InstalledTheme } from '@desktop-client/style/customThemes'; +} from '#style/customThemes'; +import type { InstalledTheme } from '#style/customThemes'; + +import { ThemeInstaller } from './ThemeInstaller'; +import { Column, Setting } from './UI'; const INSTALL_NEW_VALUE = '__install_new__'; const INSTALL_CUSTOM_LIGHT = '__install_custom_light__'; diff --git a/packages/desktop-client/src/components/settings/UI.tsx b/packages/desktop-client/src/components/settings/UI.tsx index c0154733be..f8af89e26b 100644 --- a/packages/desktop-client/src/components/settings/UI.tsx +++ b/packages/desktop-client/src/components/settings/UI.tsx @@ -10,7 +10,7 @@ import { tokens } from '@actual-app/components/tokens'; import { View } from '@actual-app/components/view'; import { css } from '@emotion/css'; -import { Link } from '@desktop-client/components/common/Link'; +import { Link } from '#components/common/Link'; type SettingProps = { primaryAction?: ReactNode; diff --git a/packages/desktop-client/src/components/settings/index.tsx b/packages/desktop-client/src/components/settings/index.tsx index ffb5b3cd4c..e9aa929601 100644 --- a/packages/desktop-client/src/components/settings/index.tsx +++ b/packages/desktop-client/src/components/settings/index.tsx @@ -9,10 +9,23 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { tokens } from '@actual-app/components/tokens'; import { View } from '@actual-app/components/view'; +import { listen } from '@actual-app/core/platform/client/connection'; +import { isElectron } from '@actual-app/core/shared/environment'; import { css } from '@emotion/css'; -import { listen } from 'loot-core/platform/client/connection'; -import { isElectron } from 'loot-core/shared/environment'; +import { getLatestAppVersion } from '#app/appSlice'; +import { closeBudget } from '#budgetfiles/budgetfilesSlice'; +import { Link } from '#components/common/Link'; +import { Checkbox, FormField, FormLabel } from '#components/forms'; +import { MOBILE_NAV_HEIGHT } from '#components/mobile/MobileNavTabs'; +import { Page } from '#components/Page'; +import { useServerVersion } from '#components/ServerContext'; +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { loadPrefs } from '#prefs/prefsSlice'; +import { useDispatch, useSelector } from '#redux'; import { AuthSettings } from './AuthSettings'; import { Backups } from './Backups'; @@ -28,24 +41,6 @@ import { ResetCache, ResetSync } from './Reset'; import { ThemeSettings } from './Themes'; import { AdvancedToggle, Setting } from './UI'; -import { getLatestAppVersion } from '@desktop-client/app/appSlice'; -import { closeBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { Link } from '@desktop-client/components/common/Link'; -import { - Checkbox, - FormField, - FormLabel, -} from '@desktop-client/components/forms'; -import { MOBILE_NAV_HEIGHT } from '@desktop-client/components/mobile/MobileNavTabs'; -import { Page } from '@desktop-client/components/Page'; -import { useServerVersion } from '@desktop-client/components/ServerContext'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { loadPrefs } from '@desktop-client/prefs/prefsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; - function About() { const version = useServerVersion(); const versionInfo = useSelector(state => state.app.versionInfo); diff --git a/packages/desktop-client/src/components/sidebar/Account.tsx b/packages/desktop-client/src/components/sidebar/Account.tsx index 263d5984bc..01a7aa851e 100644 --- a/packages/desktop-client/src/components/sidebar/Account.tsx +++ b/packages/desktop-client/src/components/sidebar/Account.tsx @@ -19,35 +19,24 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; +import type { AccountEntity } from '@actual-app/core/types/models'; import { css, cx } from '@emotion/css'; -import type { AccountEntity } from 'loot-core/types/models'; - -import { - useReopenAccountMutation, - useUpdateAccountMutation, -} from '@desktop-client/accounts'; -import { BalanceHistoryGraph } from '@desktop-client/components/accounts/BalanceHistoryGraph'; -import { Link } from '@desktop-client/components/common/Link'; -import { Notes } from '@desktop-client/components/Notes'; -import { - DropHighlight, - useDraggable, - useDroppable, -} from '@desktop-client/components/sort'; -import type { - OnDragChangeCallback, - OnDropCallback, -} from '@desktop-client/components/sort'; -import { CellValue } from '@desktop-client/components/spreadsheet/CellValue'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { useDragRef } from '@desktop-client/hooks/useDragRef'; -import { useIsTestEnv } from '@desktop-client/hooks/useIsTestEnv'; -import { useNotes } from '@desktop-client/hooks/useNotes'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { openAccountCloseModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import type { Binding, SheetFields } from '@desktop-client/spreadsheet'; +import { useReopenAccountMutation, useUpdateAccountMutation } from '#accounts'; +import { BalanceHistoryGraph } from '#components/accounts/BalanceHistoryGraph'; +import { Link } from '#components/common/Link'; +import { Notes } from '#components/Notes'; +import { DropHighlight, useDraggable, useDroppable } from '#components/sort'; +import type { OnDragChangeCallback, OnDropCallback } from '#components/sort'; +import { CellValue } from '#components/spreadsheet/CellValue'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { useDragRef } from '#hooks/useDragRef'; +import { useIsTestEnv } from '#hooks/useIsTestEnv'; +import { useNotes } from '#hooks/useNotes'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { openAccountCloseModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; +import type { Binding, SheetFields } from '#spreadsheet'; export const accountNameStyle: CSSProperties = { marginTop: -2, diff --git a/packages/desktop-client/src/components/sidebar/Accounts.tsx b/packages/desktop-client/src/components/sidebar/Accounts.tsx index 87729a1d05..17de6621fc 100644 --- a/packages/desktop-client/src/components/sidebar/Accounts.tsx +++ b/packages/desktop-client/src/components/sidebar/Accounts.tsx @@ -3,23 +3,22 @@ import { useTranslation } from 'react-i18next'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { AccountEntity } from '@actual-app/core/types/models'; -import type { AccountEntity } from 'loot-core/types/models'; +import { useMoveAccountMutation } from '#accounts'; +import { useAccounts } from '#hooks/useAccounts'; +import { useClosedAccounts } from '#hooks/useClosedAccounts'; +import { useFailedAccounts } from '#hooks/useFailedAccounts'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { useOffBudgetAccounts } from '#hooks/useOffBudgetAccounts'; +import { useOnBudgetAccounts } from '#hooks/useOnBudgetAccounts'; +import { useUpdatedAccounts } from '#hooks/useUpdatedAccounts'; +import { useSelector } from '#redux'; +import * as bindings from '#spreadsheet/bindings'; import { Account } from './Account'; import { SecondaryItem } from './SecondaryItem'; -import { useMoveAccountMutation } from '@desktop-client/accounts'; -import { useAccounts } from '@desktop-client/hooks/useAccounts'; -import { useClosedAccounts } from '@desktop-client/hooks/useClosedAccounts'; -import { useFailedAccounts } from '@desktop-client/hooks/useFailedAccounts'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { useOffBudgetAccounts } from '@desktop-client/hooks/useOffBudgetAccounts'; -import { useOnBudgetAccounts } from '@desktop-client/hooks/useOnBudgetAccounts'; -import { useUpdatedAccounts } from '@desktop-client/hooks/useUpdatedAccounts'; -import { useSelector } from '@desktop-client/redux'; -import * as bindings from '@desktop-client/spreadsheet/bindings'; - const fontWeight = 600; export function Accounts() { diff --git a/packages/desktop-client/src/components/sidebar/BudgetName.tsx b/packages/desktop-client/src/components/sidebar/BudgetName.tsx index 6d3f87715f..8e9c5a75e4 100644 --- a/packages/desktop-client/src/components/sidebar/BudgetName.tsx +++ b/packages/desktop-client/src/components/sidebar/BudgetName.tsx @@ -11,16 +11,15 @@ import { Popover } from '@actual-app/components/popover'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { isElectron } from '@actual-app/core/shared/environment'; +import * as Platform from '@actual-app/core/shared/platform'; -import { isElectron } from 'loot-core/shared/environment'; -import * as Platform from 'loot-core/shared/platform'; - -import { closeBudget } from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { useMetadataPref } from '@desktop-client/hooks/useMetadataPref'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { closeBudget } from '#budgetfiles/budgetfilesSlice'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { useMetadataPref } from '#hooks/useMetadataPref'; +import { useNavigate } from '#hooks/useNavigate'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; type BudgetNameProps = { children?: ReactNode; diff --git a/packages/desktop-client/src/components/sidebar/ItemContent.tsx b/packages/desktop-client/src/components/sidebar/ItemContent.tsx index e42bf10064..844d5a1442 100644 --- a/packages/desktop-client/src/components/sidebar/ItemContent.tsx +++ b/packages/desktop-client/src/components/sidebar/ItemContent.tsx @@ -5,7 +5,7 @@ import { Button } from '@actual-app/components/button'; import type { CSSProperties } from '@actual-app/components/styles'; import type { View } from '@actual-app/components/view'; -import { Link } from '@desktop-client/components/common/Link'; +import { Link } from '#components/common/Link'; type ItemContentProps = { style: ComponentProps['style']; diff --git a/packages/desktop-client/src/components/sidebar/PrimaryButtons.tsx b/packages/desktop-client/src/components/sidebar/PrimaryButtons.tsx index 01cff8ec38..1615d22aef 100644 --- a/packages/desktop-client/src/components/sidebar/PrimaryButtons.tsx +++ b/packages/desktop-client/src/components/sidebar/PrimaryButtons.tsx @@ -16,12 +16,12 @@ import { import { SvgCalendar3 } from '@actual-app/components/icons/v2'; import { View } from '@actual-app/components/view'; +import { useIsTestEnv } from '#hooks/useIsTestEnv'; +import { useSyncServerStatus } from '#hooks/useSyncServerStatus'; + import { Item } from './Item'; import { SecondaryItem } from './SecondaryItem'; -import { useIsTestEnv } from '@desktop-client/hooks/useIsTestEnv'; -import { useSyncServerStatus } from '@desktop-client/hooks/useSyncServerStatus'; - export function PrimaryButtons() { const { t } = useTranslation(); const [isOpen, setOpen] = useState(false); diff --git a/packages/desktop-client/src/components/sidebar/Sidebar.tsx b/packages/desktop-client/src/components/sidebar/Sidebar.tsx index c3d6228bc6..61db2565f7 100644 --- a/packages/desktop-client/src/components/sidebar/Sidebar.tsx +++ b/packages/desktop-client/src/components/sidebar/Sidebar.tsx @@ -7,10 +7,15 @@ import { SvgAdd } from '@actual-app/components/icons/v1'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import * as Platform from '@actual-app/core/shared/platform'; import { css } from '@emotion/css'; import { Resizable } from 're-resizable'; -import * as Platform from 'loot-core/shared/platform'; +import { useGlobalPref } from '#hooks/useGlobalPref'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { useResizeObserver } from '#hooks/useResizeObserver'; +import { replaceModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; import { Accounts } from './Accounts'; import { BudgetName } from './BudgetName'; @@ -19,12 +24,6 @@ import { SecondaryButtons } from './SecondaryButtons'; import { useSidebar } from './SidebarProvider'; import { ToggleButton } from './ToggleButton'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { useResizeObserver } from '@desktop-client/hooks/useResizeObserver'; -import { replaceModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; - export function Sidebar() { const hasWindowButtons = !Platform.isBrowser && Platform.OS === 'mac'; diff --git a/packages/desktop-client/src/components/sidebar/SidebarProvider.tsx b/packages/desktop-client/src/components/sidebar/SidebarProvider.tsx index 1fe0aae41c..32d458c514 100644 --- a/packages/desktop-client/src/components/sidebar/SidebarProvider.tsx +++ b/packages/desktop-client/src/components/sidebar/SidebarProvider.tsx @@ -4,7 +4,7 @@ import type { Dispatch, ReactNode, SetStateAction } from 'react'; import { useResponsive } from '@actual-app/components/hooks/useResponsive'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; +import { useGlobalPref } from '#hooks/useGlobalPref'; type SidebarContextValue = { hidden: boolean; diff --git a/packages/desktop-client/src/components/sidebar/index.tsx b/packages/desktop-client/src/components/sidebar/index.tsx index e9fbdc0e05..f3da4047dd 100644 --- a/packages/desktop-client/src/components/sidebar/index.tsx +++ b/packages/desktop-client/src/components/sidebar/index.tsx @@ -4,11 +4,11 @@ import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { View } from '@actual-app/components/view'; import { useDebounceCallback } from 'usehooks-ts'; +import { useGlobalPref } from '#hooks/useGlobalPref'; + import { Sidebar } from './Sidebar'; import { useSidebar } from './SidebarProvider'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; - export function FloatableSidebar() { const [floatingSidebar] = useGlobalPref('floatingSidebar'); diff --git a/packages/desktop-client/src/components/sort.tsx b/packages/desktop-client/src/components/sort.tsx index c1fd83122c..4b549f454b 100644 --- a/packages/desktop-client/src/components/sort.tsx +++ b/packages/desktop-client/src/components/sort.tsx @@ -12,8 +12,8 @@ import { useDrag, useDrop } from 'react-dnd'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { useDragRef } from '@desktop-client/hooks/useDragRef'; -import { useMergedRefs } from '@desktop-client/hooks/useMergedRefs'; +import { useDragRef } from '#hooks/useDragRef'; +import { useMergedRefs } from '#hooks/useMergedRefs'; export type DragState = { state: 'start-preview' | 'start' | 'end'; diff --git a/packages/desktop-client/src/components/spreadsheet/CellValue.tsx b/packages/desktop-client/src/components/spreadsheet/CellValue.tsx index f11b146c6c..7b07bb9514 100644 --- a/packages/desktop-client/src/components/spreadsheet/CellValue.tsx +++ b/packages/desktop-client/src/components/spreadsheet/CellValue.tsx @@ -4,18 +4,18 @@ import type { ComponentPropsWithoutRef, CSSProperties, ReactNode } from 'react'; import { Text } from '@actual-app/components/text'; -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { PrivacyFilter } from '@desktop-client/components/PrivacyFilter'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { useSheetName } from '@desktop-client/hooks/useSheetName'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; +import { FinancialText } from '#components/FinancialText'; +import { PrivacyFilter } from '#components/PrivacyFilter'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { useSheetName } from '#hooks/useSheetName'; +import { useSheetValue } from '#hooks/useSheetValue'; import type { Binding, SheetFields, SheetNames, Spreadsheets, -} from '@desktop-client/spreadsheet'; +} from '#spreadsheet'; type CellValueProps< SheetName extends SheetNames, diff --git a/packages/desktop-client/src/components/table.tsx b/packages/desktop-client/src/components/table.tsx index 637cc5dd08..b5c1a53189 100644 --- a/packages/desktop-client/src/components/table.tsx +++ b/packages/desktop-client/src/components/table.tsx @@ -35,27 +35,27 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; -import { FixedSizeList } from './FixedSizeList'; -import { - ConditionalPrivacyFilter, - mergeConditionalPrivacyFilterProps, -} from './PrivacyFilter'; - -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { useModalState } from '@desktop-client/hooks/useModalState'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { useModalState } from '#hooks/useModalState'; import { AvoidRefocusScrollProvider, useProperFocus, -} from '@desktop-client/hooks/useProperFocus'; -import { useSelectedItems } from '@desktop-client/hooks/useSelected'; -import { useSheetValue } from '@desktop-client/hooks/useSheetValue'; +} from '#hooks/useProperFocus'; +import { useSelectedItems } from '#hooks/useSelected'; +import { useSheetValue } from '#hooks/useSheetValue'; import type { Binding, SheetFields, SheetNames, Spreadsheets, -} from '@desktop-client/spreadsheet'; +} from '#spreadsheet'; + +import { FixedSizeList } from './FixedSizeList'; +import { + ConditionalPrivacyFilter, + mergeConditionalPrivacyFilterProps, +} from './PrivacyFilter'; export const ROW_HEIGHT = 32; diff --git a/packages/desktop-client/src/components/tags/ManageTags.tsx b/packages/desktop-client/src/components/tags/ManageTags.tsx index 36a941e76b..1bb0fe909b 100644 --- a/packages/desktop-client/src/components/tags/ManageTags.tsx +++ b/packages/desktop-client/src/components/tags/ManageTags.tsx @@ -9,24 +9,17 @@ import { styles } from '@actual-app/components/styles'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { getNormalisedString } from '@actual-app/core/shared/normalisation'; -import { getNormalisedString } from 'loot-core/shared/normalisation'; +import { Search } from '#components/common/Search'; +import { SelectedProvider, useSelected } from '#hooks/useSelected'; +import { useTags } from '#hooks/useTags'; +import { useDeleteTagsMutation, useDiscoverTagsMutation } from '#tags'; import { TagCreationRow } from './TagCreationRow'; import { TagsHeader } from './TagsHeader'; import { TagsList } from './TagsList'; -import { Search } from '@desktop-client/components/common/Search'; -import { - SelectedProvider, - useSelected, -} from '@desktop-client/hooks/useSelected'; -import { useTags } from '@desktop-client/hooks/useTags'; -import { - useDeleteTagsMutation, - useDiscoverTagsMutation, -} from '@desktop-client/tags'; - export function ManageTags() { const { t } = useTranslation(); const [filter, setFilter] = useState(''); diff --git a/packages/desktop-client/src/components/tags/ManageTagsPage.tsx b/packages/desktop-client/src/components/tags/ManageTagsPage.tsx index 486261e270..3d2c4d88a3 100644 --- a/packages/desktop-client/src/components/tags/ManageTagsPage.tsx +++ b/packages/desktop-client/src/components/tags/ManageTagsPage.tsx @@ -1,9 +1,9 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; -import { ManageTags } from './ManageTags'; +import { Page } from '#components/Page'; -import { Page } from '@desktop-client/components/Page'; +import { ManageTags } from './ManageTags'; export const ManageTagsPage = () => { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/tags/TagCreationRow.tsx b/packages/desktop-client/src/components/tags/TagCreationRow.tsx index d034834629..820b6a6322 100644 --- a/packages/desktop-client/src/components/tags/TagCreationRow.tsx +++ b/packages/desktop-client/src/components/tags/TagCreationRow.tsx @@ -7,18 +7,13 @@ import { ColorPicker } from '@actual-app/components/color-picker'; import { SpaceBetween } from '@actual-app/components/space-between'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { TagEntity } from '@actual-app/core/types/models'; -import type { TagEntity } from 'loot-core/types/models'; - -import { - InputCell, - Row, - useTableNavigator, -} from '@desktop-client/components/table'; -import { useInitialMount } from '@desktop-client/hooks/useInitialMount'; -import { useProperFocus } from '@desktop-client/hooks/useProperFocus'; -import { useTagCSS } from '@desktop-client/hooks/useTagCSS'; -import { useCreateTagMutation } from '@desktop-client/tags'; +import { InputCell, Row, useTableNavigator } from '#components/table'; +import { useInitialMount } from '#hooks/useInitialMount'; +import { useProperFocus } from '#hooks/useProperFocus'; +import { useTagCSS } from '#hooks/useTagCSS'; +import { useCreateTagMutation } from '#tags'; type TagCreationRowProps = { tags: TagEntity[]; diff --git a/packages/desktop-client/src/components/tags/TagEditor.tsx b/packages/desktop-client/src/components/tags/TagEditor.tsx index 4ed6605ff6..d0567aa32e 100644 --- a/packages/desktop-client/src/components/tags/TagEditor.tsx +++ b/packages/desktop-client/src/components/tags/TagEditor.tsx @@ -2,11 +2,10 @@ import type { RefObject } from 'react'; import { Button } from '@actual-app/components/button'; import { ColorPicker } from '@actual-app/components/color-picker'; +import type { TagEntity } from '@actual-app/core/types/models'; -import type { TagEntity } from 'loot-core/types/models'; - -import { useTagCSS } from '@desktop-client/hooks/useTagCSS'; -import { useUpdateTagMutation } from '@desktop-client/tags'; +import { useTagCSS } from '#hooks/useTagCSS'; +import { useUpdateTagMutation } from '#tags'; type TagEditorProps = { tag: TagEntity; diff --git a/packages/desktop-client/src/components/tags/TagRow.tsx b/packages/desktop-client/src/components/tags/TagRow.tsx index eced72c0a0..6ddac777a0 100644 --- a/packages/desktop-client/src/components/tags/TagRow.tsx +++ b/packages/desktop-client/src/components/tags/TagRow.tsx @@ -6,10 +6,7 @@ import { Menu } from '@actual-app/components/menu'; import { Popover } from '@actual-app/components/popover'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; - -import type { TagEntity } from 'loot-core/types/models'; - -import { TagEditor } from './TagEditor'; +import type { TagEntity } from '@actual-app/core/types/models'; import { Cell, @@ -17,15 +14,14 @@ import { InputCell, Row, SelectCell, -} from '@desktop-client/components/table'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useProperFocus } from '@desktop-client/hooks/useProperFocus'; -import { useSelectedDispatch } from '@desktop-client/hooks/useSelected'; -import { - useDeleteTagMutation, - useUpdateTagMutation, -} from '@desktop-client/tags'; +} from '#components/table'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { useNavigate } from '#hooks/useNavigate'; +import { useProperFocus } from '#hooks/useProperFocus'; +import { useSelectedDispatch } from '#hooks/useSelected'; +import { useDeleteTagMutation, useUpdateTagMutation } from '#tags'; + +import { TagEditor } from './TagEditor'; type TagRowProps = { tag: TagEntity; diff --git a/packages/desktop-client/src/components/tags/TagsHeader.tsx b/packages/desktop-client/src/components/tags/TagsHeader.tsx index 1922096a7c..b12e2c93c2 100644 --- a/packages/desktop-client/src/components/tags/TagsHeader.tsx +++ b/packages/desktop-client/src/components/tags/TagsHeader.tsx @@ -1,15 +1,8 @@ import React from 'react'; import { useTranslation } from 'react-i18next'; -import { - Cell, - SelectCell, - TableHeader, -} from '@desktop-client/components/table'; -import { - useSelectedDispatch, - useSelectedItems, -} from '@desktop-client/hooks/useSelected'; +import { Cell, SelectCell, TableHeader } from '#components/table'; +import { useSelectedDispatch, useSelectedItems } from '#hooks/useSelected'; export function TagsHeader() { const { t } = useTranslation(); diff --git a/packages/desktop-client/src/components/tags/TagsList.tsx b/packages/desktop-client/src/components/tags/TagsList.tsx index 05d3dc7553..a57dfec877 100644 --- a/packages/desktop-client/src/components/tags/TagsList.tsx +++ b/packages/desktop-client/src/components/tags/TagsList.tsx @@ -1,13 +1,12 @@ import React from 'react'; import { theme } from '@actual-app/components/theme'; +import type { TagEntity } from '@actual-app/core/types/models'; -import type { TagEntity } from 'loot-core/types/models'; +import { Table, useTableNavigator } from '#components/table'; import { TagRow } from './TagRow'; -import { Table, useTableNavigator } from '@desktop-client/components/table'; - type TagsListProps = { tags: TagEntity[]; selectedItems: Set; diff --git a/packages/desktop-client/src/components/transactions/SelectedTransactionsButton.tsx b/packages/desktop-client/src/components/transactions/SelectedTransactionsButton.tsx index 3d3ef2d3bf..87a76fca7c 100644 --- a/packages/desktop-client/src/components/transactions/SelectedTransactionsButton.tsx +++ b/packages/desktop-client/src/components/transactions/SelectedTransactionsButton.tsx @@ -3,21 +3,20 @@ import { useHotkeys } from 'react-hotkeys-hook'; import { useTranslation } from 'react-i18next'; import { Menu } from '@actual-app/components/menu'; - -import { q } from 'loot-core/shared/query'; +import { q } from '@actual-app/core/shared/query'; import { extractScheduleConds, scheduleIsRecurring, -} from 'loot-core/shared/schedules'; -import { isPreviewId } from 'loot-core/shared/transactions'; -import { validForTransfer } from 'loot-core/shared/transfer'; -import type { TransactionEntity } from 'loot-core/types/models'; +} from '@actual-app/core/shared/schedules'; +import { isPreviewId } from '@actual-app/core/shared/transactions'; +import { validForTransfer } from '@actual-app/core/shared/transfer'; +import type { TransactionEntity } from '@actual-app/core/types/models'; -import { SelectedItemsButton } from '@desktop-client/components/table'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; -import { useSelectedItems } from '@desktop-client/hooks/useSelected'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { SelectedItemsButton } from '#components/table'; +import { useSchedules } from '#hooks/useSchedules'; +import { useSelectedItems } from '#hooks/useSelected'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; type SelectedTransactionsButtonProps = { getTransaction: (id: string) => TransactionEntity | undefined; diff --git a/packages/desktop-client/src/components/transactions/SimpleTransactionsTable.tsx b/packages/desktop-client/src/components/transactions/SimpleTransactionsTable.tsx index ad4e8e4089..4b116d44ed 100644 --- a/packages/desktop-client/src/components/transactions/SimpleTransactionsTable.tsx +++ b/packages/desktop-client/src/components/transactions/SimpleTransactionsTable.tsx @@ -4,33 +4,23 @@ import { Trans, useTranslation } from 'react-i18next'; import { SvgArrowsSynchronize } from '@actual-app/components/icons/v2'; import { theme } from '@actual-app/components/theme'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { TransactionEntity } from '@actual-app/core/types/models'; import { format as formatDate, isValid as isDateValid, parseISO, } from 'date-fns'; -import * as monthUtils from 'loot-core/shared/months'; -import type { TransactionEntity } from 'loot-core/types/models'; - -import { FinancialText } from '@desktop-client/components/FinancialText'; -import { - Cell, - Field, - Row, - SelectCell, - Table, -} from '@desktop-client/components/table'; -import { DisplayId } from '@desktop-client/components/util/DisplayId'; -import { useAccount } from '@desktop-client/hooks/useAccount'; -import { useCategory } from '@desktop-client/hooks/useCategory'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { useFormat } from '@desktop-client/hooks/useFormat'; -import type { FormatType } from '@desktop-client/hooks/useFormat'; -import { - useSelectedDispatch, - useSelectedItems, -} from '@desktop-client/hooks/useSelected'; +import { FinancialText } from '#components/FinancialText'; +import { Cell, Field, Row, SelectCell, Table } from '#components/table'; +import { DisplayId } from '#components/util/DisplayId'; +import { useAccount } from '#hooks/useAccount'; +import { useCategory } from '#hooks/useCategory'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { useFormat } from '#hooks/useFormat'; +import type { FormatType } from '#hooks/useFormat'; +import { useSelectedDispatch, useSelectedItems } from '#hooks/useSelected'; function serializeTransaction( transaction: TransactionEntity, diff --git a/packages/desktop-client/src/components/transactions/TransactionList.tsx b/packages/desktop-client/src/components/transactions/TransactionList.tsx index 1e3ba039e2..b22ef7c93c 100644 --- a/packages/desktop-client/src/components/transactions/TransactionList.tsx +++ b/packages/desktop-client/src/components/transactions/TransactionList.tsx @@ -5,11 +5,10 @@ import type { RefObject } from 'react'; import { useTranslation } from 'react-i18next'; import { theme } from '@actual-app/components/theme'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import { getUpcomingDays } from 'loot-core/shared/schedules'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import { getUpcomingDays } from '@actual-app/core/shared/schedules'; import { addSplitTransaction, applyTransactionDiff, @@ -17,8 +16,8 @@ import { realizeTempTransactions, splitTransaction, updateTransaction, -} from 'loot-core/shared/transactions'; -import { applyChanges, getChangedValues } from 'loot-core/shared/util'; +} from '@actual-app/core/shared/transactions'; +import { applyChanges, getChangedValues } from '@actual-app/core/shared/util'; import type { AccountEntity, CategoryEntity, @@ -28,19 +27,19 @@ import type { ScheduleEntity, TransactionEntity, TransactionFilterEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import type { TableHandleRef } from '#components/table'; +import { isValidBoundaryDrop } from '#hooks/useDragDrop'; +import type { DropPosition } from '#hooks/useDragDrop'; +import { useNavigate } from '#hooks/useNavigate'; +import { useSyncedPref } from '#hooks/useSyncedPref'; +import { pushModal } from '#modals/modalsSlice'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; import { TransactionTable } from './TransactionsTable'; import type { TransactionTableProps } from './TransactionsTable'; - -import type { TableHandleRef } from '@desktop-client/components/table'; -import { isValidBoundaryDrop } from '@desktop-client/hooks/useDragDrop'; -import type { DropPosition } from '@desktop-client/hooks/useDragDrop'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; -import { useSyncedPref } from '@desktop-client/hooks/useSyncedPref'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; // When data changes, there are two ways to update the UI: // // * Optimistic updates: we apply the needed updates to local data diff --git a/packages/desktop-client/src/components/transactions/TransactionMenu.tsx b/packages/desktop-client/src/components/transactions/TransactionMenu.tsx index 60fdcd575a..578ce81501 100644 --- a/packages/desktop-client/src/components/transactions/TransactionMenu.tsx +++ b/packages/desktop-client/src/components/transactions/TransactionMenu.tsx @@ -3,19 +3,18 @@ import type { ComponentPropsWithoutRef } from 'react'; import { useTranslation } from 'react-i18next'; import { Menu } from '@actual-app/components/menu'; - -import { q } from 'loot-core/shared/query'; +import { q } from '@actual-app/core/shared/query'; import { extractScheduleConds, scheduleIsRecurring, -} from 'loot-core/shared/schedules'; -import { isPreviewId } from 'loot-core/shared/transactions'; -import type { TransactionEntity } from 'loot-core/types/models'; +} from '@actual-app/core/shared/schedules'; +import { isPreviewId } from '@actual-app/core/shared/transactions'; +import type { TransactionEntity } from '@actual-app/core/types/models'; -import { useSchedules } from '@desktop-client/hooks/useSchedules'; -import { useSelectedItems } from '@desktop-client/hooks/useSelected'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; +import { useSchedules } from '#hooks/useSchedules'; +import { useSelectedItems } from '#hooks/useSelected'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; type BalanceMenuProps = Omit< ComponentPropsWithoutRef, diff --git a/packages/desktop-client/src/components/transactions/TransactionsTable.test.tsx b/packages/desktop-client/src/components/transactions/TransactionsTable.test.tsx index 6a0ab5cc2d..7f0983ea07 100644 --- a/packages/desktop-client/src/components/transactions/TransactionsTable.test.tsx +++ b/packages/desktop-client/src/components/transactions/TransactionsTable.test.tsx @@ -1,44 +1,43 @@ import React, { useEffect, useState } from 'react'; -import { fireEvent, render, screen } from '@testing-library/react'; -import userEvent from '@testing-library/user-event'; -import { format as formatDate, parse as parseDate } from 'date-fns'; -import { v4 as uuidv4 } from 'uuid'; - import { generateAccount, generateCategoryGroups, generateTransaction, -} from 'loot-core/mocks'; -import { initServer } from 'loot-core/platform/client/connection'; +} from '@actual-app/core/mocks'; +import { initServer } from '@actual-app/core/platform/client/connection'; import { addSplitTransaction, realizeTempTransactions, splitTransaction, updateTransaction, -} from 'loot-core/shared/transactions'; -import { integerToCurrency } from 'loot-core/shared/util'; +} from '@actual-app/core/shared/transactions'; +import { integerToCurrency } from '@actual-app/core/shared/util'; import type { AccountEntity, CategoryEntity, CategoryGroupEntity, PayeeEntity, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { fireEvent, render, screen } from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { format as formatDate, parse as parseDate } from 'date-fns'; +import { v4 as uuidv4 } from 'uuid'; + +import { AuthProvider } from '#auth/AuthProvider'; +import { SchedulesProvider } from '#hooks/useCachedSchedules'; +import { SelectedProviderWithItems } from '#hooks/useSelected'; +import { SplitsExpandedProvider } from '#hooks/useSplitsExpanded'; +import { SpreadsheetProvider } from '#hooks/useSpreadsheet'; +import { createTestQueryClient, TestProviders } from '#mocks'; +import { payeeQueries } from '#payees'; import { TransactionTable } from './TransactionsTable'; -import { AuthProvider } from '@desktop-client/auth/AuthProvider'; -import { SchedulesProvider } from '@desktop-client/hooks/useCachedSchedules'; -import { SelectedProviderWithItems } from '@desktop-client/hooks/useSelected'; -import { SplitsExpandedProvider } from '@desktop-client/hooks/useSplitsExpanded'; -import { SpreadsheetProvider } from '@desktop-client/hooks/useSpreadsheet'; -import { createTestQueryClient, TestProviders } from '@desktop-client/mocks'; -import { payeeQueries } from '@desktop-client/payees'; - const queryClient = createTestQueryClient(); -vi.mock('loot-core/platform/client/connection'); +vi.mock('@actual-app/core/platform/client/connection'); vi.mock('../../hooks/useSyncedPref', () => ({ useSyncedPref: vi.fn().mockReturnValue([undefined, vi.fn()]), })); diff --git a/packages/desktop-client/src/components/transactions/TransactionsTable.tsx b/packages/desktop-client/src/components/transactions/TransactionsTable.tsx index 1b44bf0134..4c5c369cb5 100644 --- a/packages/desktop-client/src/components/transactions/TransactionsTable.tsx +++ b/packages/desktop-client/src/components/transactions/TransactionsTable.tsx @@ -45,12 +45,9 @@ import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; import { Tooltip } from '@actual-app/components/tooltip'; import { View } from '@actual-app/components/view'; -import { format as formatDate, parseISO } from 'date-fns'; -import memoizeOne from 'memoize-one'; - -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import { getStatusLabel } from 'loot-core/shared/schedules'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import { getStatusLabel } from '@actual-app/core/shared/schedules'; import { addSplitTransaction, deleteTransaction, @@ -60,14 +57,14 @@ import { splitTransaction, ungroupTransactions, updateTransaction, -} from 'loot-core/shared/transactions'; +} from '@actual-app/core/shared/transactions'; import { amountToCurrency, currencyToAmount, integerToCurrency, titleFirst, -} from 'loot-core/shared/util'; -import type { IntegerAmount } from 'loot-core/shared/util'; +} from '@actual-app/core/shared/util'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; import type { AccountEntity, CategoryEntity, @@ -76,7 +73,66 @@ import type { RuleEntity, ScheduleEntity, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { format as formatDate, parseISO } from 'date-fns'; +import memoizeOne from 'memoize-one'; + +import { getAccountsById } from '#accounts/accountsSlice'; +import { AccountAutocomplete } from '#components/autocomplete/AccountAutocomplete'; +import { CategoryAutocomplete } from '#components/autocomplete/CategoryAutocomplete'; +import { PayeeAutocomplete } from '#components/autocomplete/PayeeAutocomplete'; +import { getStatusProps } from '#components/schedules/StatusBadge'; +import type { StatusTypes } from '#components/schedules/StatusBadge'; +import { DateSelect } from '#components/select/DateSelect'; +import { + Cell, + CellButton, + CustomCell, + DeleteCell, + Field, + InputCell, + Row, + SelectCell, + Table, + UnexposedCellContent, + useTableNavigator, +} from '#components/table'; +import type { + TableHandleRef, + TableNavigator, + TableProps, +} from '#components/table'; +import { + SchedulesProvider, + useCachedSchedules, +} from '#hooks/useCachedSchedules'; +import { useContextMenu } from '#hooks/useContextMenu'; +import { DisplayPayeeProvider, useDisplayPayee } from '#hooks/useDisplayPayee'; +import { + DropHighlight, + isValidBoundaryDrop, + useDrag, + useDrop, +} from '#hooks/useDragDrop'; +import type { + DropPosition, + OnDragChangeCallback, + OnDropCallback, +} from '#hooks/useDragDrop'; +import { useLocalPref } from '#hooks/useLocalPref'; +import { useMergedRefs } from '#hooks/useMergedRefs'; +import { usePrevious } from '#hooks/usePrevious'; +import { useProperFocus } from '#hooks/useProperFocus'; +import { useSelectedDispatch, useSelectedItems } from '#hooks/useSelected'; +import { SheetNameProvider } from '#hooks/useSheetName'; +import { useSplitsExpanded } from '#hooks/useSplitsExpanded'; +import type { SplitsExpandedContextValue } from '#hooks/useSplitsExpanded'; +import { pushModal } from '#modals/modalsSlice'; +import { NotesTagFormatter } from '#notes/NotesTagFormatter'; +import { addNotification } from '#notifications/notificationsSlice'; +import { getPayeesById } from '#payees'; +import { aqlQuery } from '#queries/aqlQuery'; +import { useDispatch } from '#redux'; import { deserializeTransaction, @@ -92,69 +148,6 @@ import type { } from './table/utils'; import { TransactionMenu } from './TransactionMenu'; -import { getAccountsById } from '@desktop-client/accounts/accountsSlice'; -import { AccountAutocomplete } from '@desktop-client/components/autocomplete/AccountAutocomplete'; -import { CategoryAutocomplete } from '@desktop-client/components/autocomplete/CategoryAutocomplete'; -import { PayeeAutocomplete } from '@desktop-client/components/autocomplete/PayeeAutocomplete'; -import { getStatusProps } from '@desktop-client/components/schedules/StatusBadge'; -import type { StatusTypes } from '@desktop-client/components/schedules/StatusBadge'; -import { DateSelect } from '@desktop-client/components/select/DateSelect'; -import { - Cell, - CellButton, - CustomCell, - DeleteCell, - Field, - InputCell, - Row, - SelectCell, - Table, - UnexposedCellContent, - useTableNavigator, -} from '@desktop-client/components/table'; -import type { - TableHandleRef, - TableNavigator, - TableProps, -} from '@desktop-client/components/table'; -import { - SchedulesProvider, - useCachedSchedules, -} from '@desktop-client/hooks/useCachedSchedules'; -import { useContextMenu } from '@desktop-client/hooks/useContextMenu'; -import { - DisplayPayeeProvider, - useDisplayPayee, -} from '@desktop-client/hooks/useDisplayPayee'; -import { - DropHighlight, - isValidBoundaryDrop, - useDrag, - useDrop, -} from '@desktop-client/hooks/useDragDrop'; -import type { - DropPosition, - OnDragChangeCallback, - OnDropCallback, -} from '@desktop-client/hooks/useDragDrop'; -import { useLocalPref } from '@desktop-client/hooks/useLocalPref'; -import { useMergedRefs } from '@desktop-client/hooks/useMergedRefs'; -import { usePrevious } from '@desktop-client/hooks/usePrevious'; -import { useProperFocus } from '@desktop-client/hooks/useProperFocus'; -import { - useSelectedDispatch, - useSelectedItems, -} from '@desktop-client/hooks/useSelected'; -import { SheetNameProvider } from '@desktop-client/hooks/useSheetName'; -import { useSplitsExpanded } from '@desktop-client/hooks/useSplitsExpanded'; -import type { SplitsExpandedContextValue } from '@desktop-client/hooks/useSplitsExpanded'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { NotesTagFormatter } from '@desktop-client/notes/NotesTagFormatter'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { getPayeesById } from '@desktop-client/payees'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; -import { useDispatch } from '@desktop-client/redux'; - type TransactionHeaderProps = { hasSelected: boolean; showAccount: boolean; diff --git a/packages/desktop-client/src/components/transactions/table/utils.ts b/packages/desktop-client/src/components/transactions/table/utils.ts index 302004a3d3..7a22f13a26 100644 --- a/packages/desktop-client/src/components/transactions/table/utils.ts +++ b/packages/desktop-client/src/components/transactions/table/utils.ts @@ -1,17 +1,16 @@ -import { isValid as isDateValid, parseISO } from 'date-fns'; - -import { evalArithmetic } from 'loot-core/shared/arithmetic'; -import { currentDay } from 'loot-core/shared/months'; +import { evalArithmetic } from '@actual-app/core/shared/arithmetic'; +import { currentDay } from '@actual-app/core/shared/months'; import { amountToInteger, integerToCurrencyWithDecimal, -} from 'loot-core/shared/util'; -import type { CurrencyAmount } from 'loot-core/shared/util'; +} from '@actual-app/core/shared/util'; +import type { CurrencyAmount } from '@actual-app/core/shared/util'; import type { AccountEntity, CategoryEntity, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { isValid as isDateValid, parseISO } from 'date-fns'; export type SerializedTransaction = Omit & { date: string; diff --git a/packages/desktop-client/src/components/util/AmountInput.tsx b/packages/desktop-client/src/components/util/AmountInput.tsx index f0dad1bf78..2d88f1897f 100644 --- a/packages/desktop-client/src/components/util/AmountInput.tsx +++ b/packages/desktop-client/src/components/util/AmountInput.tsx @@ -14,12 +14,11 @@ import { baseInputStyle, Input } from '@actual-app/components/input'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; import { css, cx } from '@emotion/css'; -import type { IntegerAmount } from 'loot-core/shared/util'; - -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useMergedRefs } from '@desktop-client/hooks/useMergedRefs'; +import { useFormat } from '#hooks/useFormat'; +import { useMergedRefs } from '#hooks/useMergedRefs'; type AmountInputProps = { id?: string; diff --git a/packages/desktop-client/src/components/util/DisplayId.tsx b/packages/desktop-client/src/components/util/DisplayId.tsx index a494fec983..3924a793a7 100644 --- a/packages/desktop-client/src/components/util/DisplayId.tsx +++ b/packages/desktop-client/src/components/util/DisplayId.tsx @@ -6,8 +6,8 @@ import { Text } from '@actual-app/components/text'; import { TextOneLine } from '@actual-app/components/text-one-line'; import { theme } from '@actual-app/components/theme'; -import { useAccount } from '@desktop-client/hooks/useAccount'; -import { usePayee } from '@desktop-client/hooks/usePayee'; +import { useAccount } from '#hooks/useAccount'; +import { usePayee } from '#hooks/usePayee'; type DisplayIdProps = { type: 'accounts' | 'payees'; diff --git a/packages/desktop-client/src/components/util/FinancialInput.tsx b/packages/desktop-client/src/components/util/FinancialInput.tsx index 4d33530410..2f3759f5d0 100644 --- a/packages/desktop-client/src/components/util/FinancialInput.tsx +++ b/packages/desktop-client/src/components/util/FinancialInput.tsx @@ -4,10 +4,9 @@ import type { FocusEvent } from 'react'; import { Input } from '@actual-app/components/input'; import type { InputProps } from '@actual-app/components/input'; import { styles } from '@actual-app/components/styles'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; -import type { IntegerAmount } from 'loot-core/shared/util'; - -import { useFormat } from '@desktop-client/hooks/useFormat'; +import { useFormat } from '#hooks/useFormat'; type FinancialInputProps = Omit< InputProps, diff --git a/packages/desktop-client/src/components/util/GenericInput.tsx b/packages/desktop-client/src/components/util/GenericInput.tsx index 6cf0dd31f2..9c0a7fddb7 100644 --- a/packages/desktop-client/src/components/util/GenericInput.tsx +++ b/packages/desktop-client/src/components/util/GenericInput.tsx @@ -5,28 +5,30 @@ import { useResponsive } from '@actual-app/components/hooks/useResponsive'; import { Input } from '@actual-app/components/input'; import type { CSSProperties } from '@actual-app/components/styles'; import { View } from '@actual-app/components/view'; +import { getMonthYearFormat } from '@actual-app/core/shared/months'; +import type { + RecurConfig, + RuleConditionOp, +} from '@actual-app/core/types/models'; -import { getMonthYearFormat } from 'loot-core/shared/months'; -import type { RecurConfig, RuleConditionOp } from 'loot-core/types/models'; +import { AccountAutocomplete } from '#components/autocomplete/AccountAutocomplete'; +import { Autocomplete } from '#components/autocomplete/Autocomplete'; +import { CategoryAutocomplete } from '#components/autocomplete/CategoryAutocomplete'; +import { CategoryGroupAutocomplete } from '#components/autocomplete/CategoryGroupAutocomplete'; +import { FilterAutocomplete } from '#components/autocomplete/FilterAutocomplete'; +import { PayeeAutocomplete } from '#components/autocomplete/PayeeAutocomplete'; +import { ReportAutocomplete } from '#components/autocomplete/ReportAutocomplete'; +import { Checkbox } from '#components/forms'; +import { DateSelect } from '#components/select/DateSelect'; +import { RecurringSchedulePicker } from '#components/select/RecurringSchedulePicker'; +import { useCategories } from '#hooks/useCategories'; +import { useDateFormat } from '#hooks/useDateFormat'; +import { pushModal } from '#modals/modalsSlice'; +import { useDispatch } from '#redux'; import { AmountInput } from './AmountInput'; import { PercentInput } from './PercentInput'; -import { AccountAutocomplete } from '@desktop-client/components/autocomplete/AccountAutocomplete'; -import { Autocomplete } from '@desktop-client/components/autocomplete/Autocomplete'; -import { CategoryAutocomplete } from '@desktop-client/components/autocomplete/CategoryAutocomplete'; -import { CategoryGroupAutocomplete } from '@desktop-client/components/autocomplete/CategoryGroupAutocomplete'; -import { FilterAutocomplete } from '@desktop-client/components/autocomplete/FilterAutocomplete'; -import { PayeeAutocomplete } from '@desktop-client/components/autocomplete/PayeeAutocomplete'; -import { ReportAutocomplete } from '@desktop-client/components/autocomplete/ReportAutocomplete'; -import { Checkbox } from '@desktop-client/components/forms'; -import { DateSelect } from '@desktop-client/components/select/DateSelect'; -import { RecurringSchedulePicker } from '@desktop-client/components/select/RecurringSchedulePicker'; -import { useCategories } from '@desktop-client/hooks/useCategories'; -import { useDateFormat } from '@desktop-client/hooks/useDateFormat'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch } from '@desktop-client/redux'; - type GenericInputProps = { ref?: Ref; style?: CSSProperties; diff --git a/packages/desktop-client/src/components/util/LoadComponent.tsx b/packages/desktop-client/src/components/util/LoadComponent.tsx index 18f942723c..10512daed3 100644 --- a/packages/desktop-client/src/components/util/LoadComponent.tsx +++ b/packages/desktop-client/src/components/util/LoadComponent.tsx @@ -6,10 +6,9 @@ import { AnimatedLoading } from '@actual-app/components/icons/AnimatedLoading'; import { styles } from '@actual-app/components/styles'; import { theme } from '@actual-app/components/theme'; import { View } from '@actual-app/components/view'; +import { LazyLoadFailedError } from '@actual-app/core/shared/errors'; import promiseRetry from 'promise-retry'; -import { LazyLoadFailedError } from 'loot-core/shared/errors'; - type ProplessComponent = ComponentType>; type LoadComponentProps = { name: K; diff --git a/packages/desktop-client/src/components/util/PercentInput.tsx b/packages/desktop-client/src/components/util/PercentInput.tsx index f0ff706326..25f581dd0a 100644 --- a/packages/desktop-client/src/components/util/PercentInput.tsx +++ b/packages/desktop-client/src/components/util/PercentInput.tsx @@ -2,11 +2,10 @@ import React, { useEffect, useRef, useState } from 'react'; import type { CSSProperties, FocusEvent, FocusEventHandler, Ref } from 'react'; import { Input } from '@actual-app/components/input'; +import { evalArithmetic } from '@actual-app/core/shared/arithmetic'; -import { evalArithmetic } from 'loot-core/shared/arithmetic'; - -import { useFormat } from '@desktop-client/hooks/useFormat'; -import { useMergedRefs } from '@desktop-client/hooks/useMergedRefs'; +import { useFormat } from '#hooks/useFormat'; +import { useMergedRefs } from '#hooks/useMergedRefs'; type PercentInputProps = { id?: string; diff --git a/packages/desktop-client/src/components/util/accountValidation.ts b/packages/desktop-client/src/components/util/accountValidation.ts index 653757176e..3f90b4f2f7 100644 --- a/packages/desktop-client/src/components/util/accountValidation.ts +++ b/packages/desktop-client/src/components/util/accountValidation.ts @@ -1,7 +1,6 @@ +import type { AccountEntity } from '@actual-app/core/types/models'; import { t } from 'i18next'; -import type { AccountEntity } from 'loot-core/types/models'; - export function validateAccountName( newAccountName: string, accountId: string, diff --git a/packages/desktop-client/src/global-events.ts b/packages/desktop-client/src/global-events.ts index 835b0534d1..3413f18177 100644 --- a/packages/desktop-client/src/global-events.ts +++ b/packages/desktop-client/src/global-events.ts @@ -1,9 +1,8 @@ +import { listen } from '@actual-app/core/platform/client/connection'; +import * as undo from '@actual-app/core/platform/client/undo'; // @ts-strict-ignore import type { QueryClient } from '@tanstack/react-query'; -import { listen } from 'loot-core/platform/client/connection'; -import * as undo from 'loot-core/platform/client/undo'; - import { accountQueries } from './accounts'; import { setAppState } from './app/appSlice'; import { categoryQueries } from './budget'; diff --git a/packages/desktop-client/src/gocardless.ts b/packages/desktop-client/src/gocardless.ts index 7c2383d6b0..058da3df9d 100644 --- a/packages/desktop-client/src/gocardless.ts +++ b/packages/desktop-client/src/gocardless.ts @@ -1,5 +1,5 @@ -import { send } from 'loot-core/platform/client/connection'; -import type { GoCardlessToken } from 'loot-core/types/models'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { GoCardlessToken } from '@actual-app/core/types/models'; import { pushModal } from './modals/modalsSlice'; import type { AppDispatch } from './redux/store'; diff --git a/packages/desktop-client/src/hooks/querySlidingWindow.ts b/packages/desktop-client/src/hooks/querySlidingWindow.ts index 93b5b790fb..60c63289bb 100644 --- a/packages/desktop-client/src/hooks/querySlidingWindow.ts +++ b/packages/desktop-client/src/hooks/querySlidingWindow.ts @@ -1,4 +1,4 @@ -import * as monthUtils from 'loot-core/shared/months'; +import * as monthUtils from '@actual-app/core/shared/months'; function isMonthOnlyDate(s: string) { return s.includes('-') && s.split('-').length === 2; diff --git a/packages/desktop-client/src/hooks/useAccount.ts b/packages/desktop-client/src/hooks/useAccount.ts index cb7bdb8f9a..bd9b7669c9 100644 --- a/packages/desktop-client/src/hooks/useAccount.ts +++ b/packages/desktop-client/src/hooks/useAccount.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { accountQueries } from '@desktop-client/accounts'; +import { accountQueries } from '#accounts'; export function useAccount(id: string) { const query = useQuery({ diff --git a/packages/desktop-client/src/hooks/useAccountPreviewTransactions.ts b/packages/desktop-client/src/hooks/useAccountPreviewTransactions.ts index cf8e0dd233..a1db76b4f7 100644 --- a/packages/desktop-client/src/hooks/useAccountPreviewTransactions.ts +++ b/packages/desktop-client/src/hooks/useAccountPreviewTransactions.ts @@ -1,13 +1,15 @@ import { useCallback, useMemo } from 'react'; -import { groupById } from 'loot-core/shared/util'; -import type { IntegerAmount } from 'loot-core/shared/util'; +import { groupById } from '@actual-app/core/shared/util'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; import type { AccountEntity, PayeeEntity, ScheduleEntity, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import * as bindings from '#spreadsheet/bindings'; import { useAccounts } from './useAccounts'; import { usePayees } from './usePayees'; @@ -16,8 +18,6 @@ import { useSheetValue } from './useSheetValue'; import { useSyncedPref } from './useSyncedPref'; import { calculateRunningBalancesBottomUp } from './useTransactions'; -import * as bindings from '@desktop-client/spreadsheet/bindings'; - type UseAccountPreviewTransactionsProps = { accountId?: AccountEntity['id'] | undefined; }; diff --git a/packages/desktop-client/src/hooks/useAccounts.ts b/packages/desktop-client/src/hooks/useAccounts.ts index 2ef67e75ee..bcfdb1afb8 100644 --- a/packages/desktop-client/src/hooks/useAccounts.ts +++ b/packages/desktop-client/src/hooks/useAccounts.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { accountQueries } from '@desktop-client/accounts'; +import { accountQueries } from '#accounts'; export function useAccounts() { return useQuery(accountQueries.list()); diff --git a/packages/desktop-client/src/hooks/useBudgetAutomations.ts b/packages/desktop-client/src/hooks/useBudgetAutomations.ts index 3ef99a5e9a..2a420d29e0 100644 --- a/packages/desktop-client/src/hooks/useBudgetAutomations.ts +++ b/packages/desktop-client/src/hooks/useBudgetAutomations.ts @@ -1,7 +1,7 @@ import { useEffect, useState } from 'react'; -import { send } from 'loot-core/platform/client/connection'; -import type { Template } from 'loot-core/types/models/templates'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { Template } from '@actual-app/core/types/models/templates'; export function useBudgetAutomations({ categoryId, diff --git a/packages/desktop-client/src/hooks/useCategories.ts b/packages/desktop-client/src/hooks/useCategories.ts index 340446e547..ec2068678a 100644 --- a/packages/desktop-client/src/hooks/useCategories.ts +++ b/packages/desktop-client/src/hooks/useCategories.ts @@ -1,8 +1,7 @@ +import { groupById } from '@actual-app/core/shared/util'; import { useQuery } from '@tanstack/react-query'; -import { groupById } from 'loot-core/shared/util'; - -import { categoryQueries } from '@desktop-client/budget'; +import { categoryQueries } from '#budget'; export function useCategories() { return useQuery(categoryQueries.list()); diff --git a/packages/desktop-client/src/hooks/useCategory.ts b/packages/desktop-client/src/hooks/useCategory.ts index 10e7dc3caa..3ee77f9b85 100644 --- a/packages/desktop-client/src/hooks/useCategory.ts +++ b/packages/desktop-client/src/hooks/useCategory.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { categoryQueries } from '@desktop-client/budget'; +import { categoryQueries } from '#budget'; export function useCategory(id?: string | null) { return useQuery({ diff --git a/packages/desktop-client/src/hooks/useCategoryGroup.ts b/packages/desktop-client/src/hooks/useCategoryGroup.ts index 6ea6cc7bea..f53c7bdea5 100644 --- a/packages/desktop-client/src/hooks/useCategoryGroup.ts +++ b/packages/desktop-client/src/hooks/useCategoryGroup.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { categoryQueries } from '@desktop-client/budget'; +import { categoryQueries } from '#budget'; export function useCategoryGroup(id?: string | null) { return useQuery({ diff --git a/packages/desktop-client/src/hooks/useCategoryPreviewTransactions.ts b/packages/desktop-client/src/hooks/useCategoryPreviewTransactions.ts index 5b41e541c7..ded393f2db 100644 --- a/packages/desktop-client/src/hooks/useCategoryPreviewTransactions.ts +++ b/packages/desktop-client/src/hooks/useCategoryPreviewTransactions.ts @@ -1,15 +1,18 @@ import { useCallback, useMemo } from 'react'; -import * as monthUtils from 'loot-core/shared/months'; -import type { CategoryEntity, ScheduleEntity } from 'loot-core/types/models'; +import * as monthUtils from '@actual-app/core/shared/months'; +import type { + CategoryEntity, + ScheduleEntity, +} from '@actual-app/core/types/models'; + +import { categoryBalance } from '#spreadsheet/bindings'; import { useCategory } from './useCategory'; import { useCategoryScheduleGoalTemplates } from './useCategoryScheduleGoalTemplates'; import { usePreviewTransactions } from './usePreviewTransactions'; import { useSheetValue } from './useSheetValue'; -import { categoryBalance } from '@desktop-client/spreadsheet/bindings'; - type UseCategoryPreviewTransactionsProps = { categoryId: CategoryEntity['id']; month: string; diff --git a/packages/desktop-client/src/hooks/useCategoryScheduleGoalTemplateIndicator.ts b/packages/desktop-client/src/hooks/useCategoryScheduleGoalTemplateIndicator.ts index ff897f244a..16069c236d 100644 --- a/packages/desktop-client/src/hooks/useCategoryScheduleGoalTemplateIndicator.ts +++ b/packages/desktop-client/src/hooks/useCategoryScheduleGoalTemplateIndicator.ts @@ -1,14 +1,16 @@ import { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { getUpcomingDays } from '@actual-app/core/shared/schedules'; +import type { ScheduleStatusType } from '@actual-app/core/shared/schedules'; +import type { + CategoryEntity, + ScheduleEntity, +} from '@actual-app/core/types/models'; import type { Locale } from 'date-fns'; import type { TFunction } from 'i18next'; -import * as monthUtils from 'loot-core/shared/months'; -import { getUpcomingDays } from 'loot-core/shared/schedules'; -import type { ScheduleStatusType } from 'loot-core/shared/schedules'; -import type { CategoryEntity, ScheduleEntity } from 'loot-core/types/models'; - import { useCategoryScheduleGoalTemplates } from './useCategoryScheduleGoalTemplates'; import { useLocale } from './useLocale'; import { useSyncedPref } from './useSyncedPref'; diff --git a/packages/desktop-client/src/hooks/useCategoryScheduleGoalTemplates.ts b/packages/desktop-client/src/hooks/useCategoryScheduleGoalTemplates.ts index b59c7ac765..93585de01e 100644 --- a/packages/desktop-client/src/hooks/useCategoryScheduleGoalTemplates.ts +++ b/packages/desktop-client/src/hooks/useCategoryScheduleGoalTemplates.ts @@ -1,7 +1,10 @@ import { useMemo } from 'react'; -import type { ScheduleStatuses } from 'loot-core/shared/schedules'; -import type { CategoryEntity, ScheduleEntity } from 'loot-core/types/models'; +import type { ScheduleStatuses } from '@actual-app/core/shared/schedules'; +import type { + CategoryEntity, + ScheduleEntity, +} from '@actual-app/core/types/models'; import { useCachedSchedules } from './useCachedSchedules'; import { useFeatureFlag } from './useFeatureFlag'; diff --git a/packages/desktop-client/src/hooks/useClosedAccounts.ts b/packages/desktop-client/src/hooks/useClosedAccounts.ts index 051c933428..35a5988f74 100644 --- a/packages/desktop-client/src/hooks/useClosedAccounts.ts +++ b/packages/desktop-client/src/hooks/useClosedAccounts.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { accountQueries } from '@desktop-client/accounts'; +import { accountQueries } from '#accounts'; export function useClosedAccounts() { return useQuery(accountQueries.listClosed()); diff --git a/packages/desktop-client/src/hooks/useCommonPayees.ts b/packages/desktop-client/src/hooks/useCommonPayees.ts index 8148b4d1d8..5b4a38d551 100644 --- a/packages/desktop-client/src/hooks/useCommonPayees.ts +++ b/packages/desktop-client/src/hooks/useCommonPayees.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { payeeQueries } from '@desktop-client/payees'; +import { payeeQueries } from '#payees'; export function useCommonPayees() { return useQuery(payeeQueries.listCommon()); diff --git a/packages/desktop-client/src/hooks/useDashboardPages.ts b/packages/desktop-client/src/hooks/useDashboardPages.ts index 5af92f8004..d2c65ab7d1 100644 --- a/packages/desktop-client/src/hooks/useDashboardPages.ts +++ b/packages/desktop-client/src/hooks/useDashboardPages.ts @@ -1,11 +1,10 @@ -import { useQuery } from '@tanstack/react-query'; - import type { DashboardPageEntity, DashboardWidgetEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { useQuery } from '@tanstack/react-query'; -import { dashboardQueries } from '@desktop-client/reports'; +import { dashboardQueries } from '#reports'; export function useDashboardPages() { return useQuery(dashboardQueries.listDashboardPages()); diff --git a/packages/desktop-client/src/hooks/useDashboardWidget.ts b/packages/desktop-client/src/hooks/useDashboardWidget.ts index db7e6b356b..455479f5ea 100644 --- a/packages/desktop-client/src/hooks/useDashboardWidget.ts +++ b/packages/desktop-client/src/hooks/useDashboardWidget.ts @@ -1,8 +1,7 @@ +import type { DashboardWidgetEntity } from '@actual-app/core/types/models'; import { useQuery } from '@tanstack/react-query'; -import type { DashboardWidgetEntity } from 'loot-core/types/models'; - -import { dashboardQueries } from '@desktop-client/reports'; +import { dashboardQueries } from '#reports'; type UseDashboardWidgetProps = Partial< Pick diff --git a/packages/desktop-client/src/hooks/useDisplayPayee.tsx b/packages/desktop-client/src/hooks/useDisplayPayee.tsx index b738cf63e2..22cb14828f 100644 --- a/packages/desktop-client/src/hooks/useDisplayPayee.tsx +++ b/packages/desktop-client/src/hooks/useDisplayPayee.tsx @@ -2,12 +2,12 @@ import { createContext, useContext, useMemo } from 'react'; import type { ReactNode } from 'react'; import { useTranslation } from 'react-i18next'; -import { q } from 'loot-core/shared/query'; +import { q } from '@actual-app/core/shared/query'; import type { AccountEntity, PayeeEntity, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; import { useAccounts } from './useAccounts'; import { usePayeesById } from './usePayees'; diff --git a/packages/desktop-client/src/hooks/useFailedAccounts.ts b/packages/desktop-client/src/hooks/useFailedAccounts.ts index d6a0ff02f5..8a8585a5a1 100644 --- a/packages/desktop-client/src/hooks/useFailedAccounts.ts +++ b/packages/desktop-client/src/hooks/useFailedAccounts.ts @@ -1,6 +1,6 @@ import { useMemo } from 'react'; -import { useSelector } from '@desktop-client/redux'; +import { useSelector } from '#redux'; export function useFailedAccounts() { const failedAccounts = useSelector(state => state.account.failedAccounts); diff --git a/packages/desktop-client/src/hooks/useFeatureFlag.ts b/packages/desktop-client/src/hooks/useFeatureFlag.ts index 793e48be16..fa80d97011 100644 --- a/packages/desktop-client/src/hooks/useFeatureFlag.ts +++ b/packages/desktop-client/src/hooks/useFeatureFlag.ts @@ -1,4 +1,4 @@ -import type { FeatureFlag } from 'loot-core/types/prefs'; +import type { FeatureFlag } from '@actual-app/core/types/prefs'; import { useSyncedPref } from './useSyncedPref'; diff --git a/packages/desktop-client/src/hooks/useFormat.ts b/packages/desktop-client/src/hooks/useFormat.ts index d1b31cee44..365e30f1fa 100644 --- a/packages/desktop-client/src/hooks/useFormat.ts +++ b/packages/desktop-client/src/hooks/useFormat.ts @@ -1,8 +1,8 @@ import { useCallback, useEffect, useMemo } from 'react'; -import { evalArithmetic } from 'loot-core/shared/arithmetic'; -import { getCurrency } from 'loot-core/shared/currencies'; -import type { Currency } from 'loot-core/shared/currencies'; +import { evalArithmetic } from '@actual-app/core/shared/arithmetic'; +import { getCurrency } from '@actual-app/core/shared/currencies'; +import type { Currency } from '@actual-app/core/shared/currencies'; import { amountToInteger, currencyToAmount, @@ -11,8 +11,8 @@ import { integerToCurrency, parseNumberFormat, setNumberFormat, -} from 'loot-core/shared/util'; -import type { IntegerAmount } from 'loot-core/shared/util'; +} from '@actual-app/core/shared/util'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; import { useSyncedPref } from './useSyncedPref'; diff --git a/packages/desktop-client/src/hooks/useFormulaExecution.ts b/packages/desktop-client/src/hooks/useFormulaExecution.ts index d498933aa2..40c60914a6 100644 --- a/packages/desktop-client/src/hooks/useFormulaExecution.ts +++ b/packages/desktop-client/src/hooks/useFormulaExecution.ts @@ -1,23 +1,22 @@ import { useEffect, useState } from 'react'; -import { HyperFormula } from 'hyperformula'; - -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import type { Query } from 'loot-core/shared/query'; -import { integerToAmount } from 'loot-core/shared/util'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import type { Query } from '@actual-app/core/shared/query'; +import { integerToAmount } from '@actual-app/core/shared/util'; import type { CategoryEntity, RuleConditionEntity, TimeFrame, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { HyperFormula } from 'hyperformula'; + +import { getLiveRange } from '#components/reports/getLiveRange'; +import { calculateTimeRange } from '#components/reports/reportRanges'; import { useLocale } from './useLocale'; -import { getLiveRange } from '@desktop-client/components/reports/getLiveRange'; -import { calculateTimeRange } from '@desktop-client/components/reports/reportRanges'; - type QueryConfig = { conditions?: RuleConditionEntity[]; conditionsOp?: 'and' | 'or'; diff --git a/packages/desktop-client/src/hooks/useGlobalPref.ts b/packages/desktop-client/src/hooks/useGlobalPref.ts index e2ea61c013..5d3b00123b 100644 --- a/packages/desktop-client/src/hooks/useGlobalPref.ts +++ b/packages/desktop-client/src/hooks/useGlobalPref.ts @@ -1,9 +1,9 @@ import { useCallback } from 'react'; -import type { GlobalPrefs } from 'loot-core/types/prefs'; +import type { GlobalPrefs } from '@actual-app/core/types/prefs'; -import { saveGlobalPrefs } from '@desktop-client/prefs/prefsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; +import { saveGlobalPrefs } from '#prefs/prefsSlice'; +import { useDispatch, useSelector } from '#redux'; type SetGlobalPrefAction = ( value: GlobalPrefs[K], diff --git a/packages/desktop-client/src/hooks/useGoCardlessStatus.ts b/packages/desktop-client/src/hooks/useGoCardlessStatus.ts index fce56187fb..14892fa14d 100644 --- a/packages/desktop-client/src/hooks/useGoCardlessStatus.ts +++ b/packages/desktop-client/src/hooks/useGoCardlessStatus.ts @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react'; -import { send } from 'loot-core/platform/client/connection'; +import { send } from '@actual-app/core/platform/client/connection'; import { useSyncServerStatus } from './useSyncServerStatus'; diff --git a/packages/desktop-client/src/hooks/useIsTestEnv.ts b/packages/desktop-client/src/hooks/useIsTestEnv.ts index d26af07295..4b31eac5b8 100644 --- a/packages/desktop-client/src/hooks/useIsTestEnv.ts +++ b/packages/desktop-client/src/hooks/useIsTestEnv.ts @@ -1,4 +1,4 @@ -import * as Platform from 'loot-core/shared/platform'; +import * as Platform from '@actual-app/core/shared/platform'; export function useIsTestEnv(): boolean { return Platform.isPlaywright; diff --git a/packages/desktop-client/src/hooks/useLocalPref.ts b/packages/desktop-client/src/hooks/useLocalPref.ts index 918e485a82..e8e972935b 100644 --- a/packages/desktop-client/src/hooks/useLocalPref.ts +++ b/packages/desktop-client/src/hooks/useLocalPref.ts @@ -1,7 +1,6 @@ +import type { LocalPrefs } from '@actual-app/core/types/prefs'; import { useLocalStorage } from 'usehooks-ts'; -import type { LocalPrefs } from 'loot-core/types/prefs'; - import { useMetadataPref } from './useMetadataPref'; type SetLocalPrefAction = ( diff --git a/packages/desktop-client/src/hooks/useLocale.ts b/packages/desktop-client/src/hooks/useLocale.ts index c0f9b67c7d..b982abd0ef 100644 --- a/packages/desktop-client/src/hooks/useLocale.ts +++ b/packages/desktop-client/src/hooks/useLocale.ts @@ -1,6 +1,6 @@ import { useMemo } from 'react'; -import { getLocale } from 'loot-core/shared/locale'; +import { getLocale } from '@actual-app/core/shared/locale'; import { useGlobalPref } from './useGlobalPref'; diff --git a/packages/desktop-client/src/hooks/useLocationPermission.ts b/packages/desktop-client/src/hooks/useLocationPermission.ts index 5f968fae44..0a87f9a798 100644 --- a/packages/desktop-client/src/hooks/useLocationPermission.ts +++ b/packages/desktop-client/src/hooks/useLocationPermission.ts @@ -2,9 +2,9 @@ import { useEffect, useState } from 'react'; import { useResponsive } from '@actual-app/components/hooks/useResponsive'; -import { useFeatureFlag } from './useFeatureFlag'; +import { locationService } from '#payees/location'; -import { locationService } from '@desktop-client/payees/location'; +import { useFeatureFlag } from './useFeatureFlag'; /** * Custom hook to manage geolocation permission status diff --git a/packages/desktop-client/src/hooks/useMetaThemeColor.test.ts b/packages/desktop-client/src/hooks/useMetaThemeColor.test.ts index 6f578862e9..b5f726b760 100644 --- a/packages/desktop-client/src/hooks/useMetaThemeColor.test.ts +++ b/packages/desktop-client/src/hooks/useMetaThemeColor.test.ts @@ -1,13 +1,13 @@ import { renderHook } from '@testing-library/react'; import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; -import { useMetaThemeColor } from './useMetaThemeColor'; +import { usePreferredDarkTheme, useTheme } from '#style/theme'; -import { usePreferredDarkTheme, useTheme } from '@desktop-client/style/theme'; +import { useMetaThemeColor } from './useMetaThemeColor'; const DEFAULT_THEME_COLOR = '#5c3dbb'; -vi.mock('@desktop-client/style/theme', () => ({ +vi.mock('#style/theme', () => ({ useTheme: vi.fn(), usePreferredDarkTheme: vi.fn(), })); diff --git a/packages/desktop-client/src/hooks/useMetaThemeColor.ts b/packages/desktop-client/src/hooks/useMetaThemeColor.ts index 1bf57e13ad..991095725e 100644 --- a/packages/desktop-client/src/hooks/useMetaThemeColor.ts +++ b/packages/desktop-client/src/hooks/useMetaThemeColor.ts @@ -1,6 +1,6 @@ import { useEffect } from 'react'; -import { usePreferredDarkTheme, useTheme } from '@desktop-client/style/theme'; +import { usePreferredDarkTheme, useTheme } from '#style/theme'; const VAR_STRING_REGEX = /^var\((--.*)\)$/; const DEFAULT_THEME_COLOR = '#5c3dbb'; diff --git a/packages/desktop-client/src/hooks/useMetadataPref.ts b/packages/desktop-client/src/hooks/useMetadataPref.ts index a5253fb0ad..630073d08f 100644 --- a/packages/desktop-client/src/hooks/useMetadataPref.ts +++ b/packages/desktop-client/src/hooks/useMetadataPref.ts @@ -1,9 +1,9 @@ import { useCallback } from 'react'; -import type { MetadataPrefs } from 'loot-core/types/prefs'; +import type { MetadataPrefs } from '@actual-app/core/types/prefs'; -import { savePrefs } from '@desktop-client/prefs/prefsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; +import { savePrefs } from '#prefs/prefsSlice'; +import { useDispatch, useSelector } from '#redux'; type SetMetadataPrefAction = ( value: MetadataPrefs[K], diff --git a/packages/desktop-client/src/hooks/useModalState.ts b/packages/desktop-client/src/hooks/useModalState.ts index 0912ae2c68..87b9bf46d9 100644 --- a/packages/desktop-client/src/hooks/useModalState.ts +++ b/packages/desktop-client/src/hooks/useModalState.ts @@ -1,8 +1,8 @@ import { useCallback } from 'react'; -import { popModal } from '@desktop-client/modals/modalsSlice'; -import type { Modal } from '@desktop-client/modals/modalsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; +import { popModal } from '#modals/modalsSlice'; +import type { Modal } from '#modals/modalsSlice'; +import { useDispatch, useSelector } from '#redux'; type ModalState = { onClose: () => void; diff --git a/packages/desktop-client/src/hooks/useNearbyPayees.ts b/packages/desktop-client/src/hooks/useNearbyPayees.ts index 3b5148ebd4..60a7eb2f70 100644 --- a/packages/desktop-client/src/hooks/useNearbyPayees.ts +++ b/packages/desktop-client/src/hooks/useNearbyPayees.ts @@ -1,8 +1,8 @@ import { useQuery } from '@tanstack/react-query'; -import { useLocationPermission } from './useLocationPermission'; +import { payeeQueries } from '#payees'; -import { payeeQueries } from '@desktop-client/payees'; +import { useLocationPermission } from './useLocationPermission'; export function useNearbyPayees() { const locationAccess = useLocationPermission(); diff --git a/packages/desktop-client/src/hooks/useNotes.ts b/packages/desktop-client/src/hooks/useNotes.ts index b5a909962f..52ea95d1ae 100644 --- a/packages/desktop-client/src/hooks/useNotes.ts +++ b/packages/desktop-client/src/hooks/useNotes.ts @@ -1,7 +1,7 @@ import { useMemo } from 'react'; -import { q } from 'loot-core/shared/query'; -import type { NoteEntity } from 'loot-core/types/models'; +import { q } from '@actual-app/core/shared/query'; +import type { NoteEntity } from '@actual-app/core/types/models'; import { useQuery } from './useQuery'; diff --git a/packages/desktop-client/src/hooks/useOffBudgetAccounts.ts b/packages/desktop-client/src/hooks/useOffBudgetAccounts.ts index d6dde0bfaa..e7d7ddb1ec 100644 --- a/packages/desktop-client/src/hooks/useOffBudgetAccounts.ts +++ b/packages/desktop-client/src/hooks/useOffBudgetAccounts.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { accountQueries } from '@desktop-client/accounts'; +import { accountQueries } from '#accounts'; export function useOffBudgetAccounts() { return useQuery(accountQueries.listOffBudget()); diff --git a/packages/desktop-client/src/hooks/useOnBudgetAccounts.ts b/packages/desktop-client/src/hooks/useOnBudgetAccounts.ts index 8e59e197cb..c2d4dbb69b 100644 --- a/packages/desktop-client/src/hooks/useOnBudgetAccounts.ts +++ b/packages/desktop-client/src/hooks/useOnBudgetAccounts.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { accountQueries } from '@desktop-client/accounts'; +import { accountQueries } from '#accounts'; export function useOnBudgetAccounts() { return useQuery(accountQueries.listOnBudget()); diff --git a/packages/desktop-client/src/hooks/useOrphanedPayees.ts b/packages/desktop-client/src/hooks/useOrphanedPayees.ts index a65639ad9e..1945894d24 100644 --- a/packages/desktop-client/src/hooks/useOrphanedPayees.ts +++ b/packages/desktop-client/src/hooks/useOrphanedPayees.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { payeeQueries } from '@desktop-client/payees/queries'; +import { payeeQueries } from '#payees/queries'; export function useOrphanedPayees() { return useQuery(payeeQueries.listOrphaned()); diff --git a/packages/desktop-client/src/hooks/useOverspentCategories.ts b/packages/desktop-client/src/hooks/useOverspentCategories.ts index f5f6e3c7f6..11bfdc91c6 100644 --- a/packages/desktop-client/src/hooks/useOverspentCategories.ts +++ b/packages/desktop-client/src/hooks/useOverspentCategories.ts @@ -1,19 +1,16 @@ import { useEffect, useMemo, useState } from 'react'; -import * as monthUtils from 'loot-core/shared/months'; -import { groupById } from 'loot-core/shared/util'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { CategoryEntity } from 'loot-core/types/models'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { groupById } from '@actual-app/core/shared/util'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { CategoryEntity } from '@actual-app/core/types/models'; + +import { envelopeBudget, trackingBudget } from '#spreadsheet/bindings'; import { useCategories } from './useCategories'; import { useSpreadsheet } from './useSpreadsheet'; import { useSyncedPref } from './useSyncedPref'; -import { - envelopeBudget, - trackingBudget, -} from '@desktop-client/spreadsheet/bindings'; - type UseOverspentCategoriesProps = { month: string; }; diff --git a/packages/desktop-client/src/hooks/usePayee.ts b/packages/desktop-client/src/hooks/usePayee.ts index 12a92a3d0b..454b66ca28 100644 --- a/packages/desktop-client/src/hooks/usePayee.ts +++ b/packages/desktop-client/src/hooks/usePayee.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { payeeQueries } from '@desktop-client/payees'; +import { payeeQueries } from '#payees'; export function usePayee(id?: string | null) { return useQuery({ diff --git a/packages/desktop-client/src/hooks/usePayeeRuleCounts.ts b/packages/desktop-client/src/hooks/usePayeeRuleCounts.ts index a278a128f9..e8266e9ab3 100644 --- a/packages/desktop-client/src/hooks/usePayeeRuleCounts.ts +++ b/packages/desktop-client/src/hooks/usePayeeRuleCounts.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { payeeQueries } from '@desktop-client/payees'; +import { payeeQueries } from '#payees'; export function usePayeeRuleCounts() { return useQuery(payeeQueries.ruleCounts()); diff --git a/packages/desktop-client/src/hooks/usePayees.ts b/packages/desktop-client/src/hooks/usePayees.ts index 8ad5393ceb..e315146f43 100644 --- a/packages/desktop-client/src/hooks/usePayees.ts +++ b/packages/desktop-client/src/hooks/usePayees.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { getPayeesById, payeeQueries } from '@desktop-client/payees'; +import { getPayeesById, payeeQueries } from '#payees'; export function usePayees() { return useQuery(payeeQueries.list()); diff --git a/packages/desktop-client/src/hooks/usePluggyAiStatus.ts b/packages/desktop-client/src/hooks/usePluggyAiStatus.ts index 9ab5a49fa4..69e567146a 100644 --- a/packages/desktop-client/src/hooks/usePluggyAiStatus.ts +++ b/packages/desktop-client/src/hooks/usePluggyAiStatus.ts @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react'; -import { send } from 'loot-core/platform/client/connection'; +import { send } from '@actual-app/core/platform/client/connection'; import { useSyncServerStatus } from './useSyncServerStatus'; diff --git a/packages/desktop-client/src/hooks/usePreviewTransactions.ts b/packages/desktop-client/src/hooks/usePreviewTransactions.ts index 5a9cfa546f..d5ed176a54 100644 --- a/packages/desktop-client/src/hooks/usePreviewTransactions.ts +++ b/packages/desktop-client/src/hooks/usePreviewTransactions.ts @@ -1,10 +1,13 @@ import { useEffect, useMemo, useState } from 'react'; -import { send } from 'loot-core/platform/client/connection'; -import { computeSchedulePreviewTransactions } from 'loot-core/shared/schedules'; -import { ungroupTransactions } from 'loot-core/shared/transactions'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { ScheduleEntity, TransactionEntity } from 'loot-core/types/models'; +import { send } from '@actual-app/core/platform/client/connection'; +import { computeSchedulePreviewTransactions } from '@actual-app/core/shared/schedules'; +import { ungroupTransactions } from '@actual-app/core/shared/transactions'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { + ScheduleEntity, + TransactionEntity, +} from '@actual-app/core/types/models'; import { useCachedSchedules } from './useCachedSchedules'; import { useSyncedPref } from './useSyncedPref'; diff --git a/packages/desktop-client/src/hooks/useQuery.ts b/packages/desktop-client/src/hooks/useQuery.ts index 48ee1476f8..beebe597bf 100644 --- a/packages/desktop-client/src/hooks/useQuery.ts +++ b/packages/desktop-client/src/hooks/useQuery.ts @@ -1,10 +1,10 @@ import { useEffect, useMemo, useState } from 'react'; import type { DependencyList } from 'react'; -import type { Query } from 'loot-core/shared/query'; +import type { Query } from '@actual-app/core/shared/query'; -import { liveQuery } from '@desktop-client/queries/liveQuery'; -import type { LiveQuery } from '@desktop-client/queries/liveQuery'; +import { liveQuery } from '#queries/liveQuery'; +import type { LiveQuery } from '#queries/liveQuery'; type UseQueryResult = { data: null | ReadonlyArray; diff --git a/packages/desktop-client/src/hooks/useReport.ts b/packages/desktop-client/src/hooks/useReport.ts index 0ab34c717c..be77844326 100644 --- a/packages/desktop-client/src/hooks/useReport.ts +++ b/packages/desktop-client/src/hooks/useReport.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { reportQueries } from '@desktop-client/reports'; +import { reportQueries } from '#reports'; export function useReport(id?: string | null) { return useQuery({ diff --git a/packages/desktop-client/src/hooks/useReports.ts b/packages/desktop-client/src/hooks/useReports.ts index ba208c5271..c9f1b2c029 100644 --- a/packages/desktop-client/src/hooks/useReports.ts +++ b/packages/desktop-client/src/hooks/useReports.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { reportQueries } from '@desktop-client/reports'; +import { reportQueries } from '#reports'; export function useReports() { return useQuery(reportQueries.list()); diff --git a/packages/desktop-client/src/hooks/useRuleConditionFilters.ts b/packages/desktop-client/src/hooks/useRuleConditionFilters.ts index aac4083112..09cf9d14c9 100644 --- a/packages/desktop-client/src/hooks/useRuleConditionFilters.ts +++ b/packages/desktop-client/src/hooks/useRuleConditionFilters.ts @@ -1,6 +1,6 @@ import { useCallback, useMemo, useState } from 'react'; -import type { RuleConditionEntity } from 'loot-core/types/models'; +import type { RuleConditionEntity } from '@actual-app/core/types/models'; export function useRuleConditionFilters( initialConditions: T[] = [], diff --git a/packages/desktop-client/src/hooks/useScheduleEdit.ts b/packages/desktop-client/src/hooks/useScheduleEdit.ts index 436775e39b..5614e910c4 100644 --- a/packages/desktop-client/src/hooks/useScheduleEdit.ts +++ b/packages/desktop-client/src/hooks/useScheduleEdit.ts @@ -1,23 +1,23 @@ // @ts-strict-ignore import { useEffect, useEffectEvent, useReducer, useState } from 'react'; -import { send, sendCatch } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; +import { send, sendCatch } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; import { extractScheduleConds, getScheduledAmount, -} from 'loot-core/shared/schedules'; +} from '@actual-app/core/shared/schedules'; import type { RecurConfig, ScheduleEntity, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; -import { updateScheduleConditions } from '@desktop-client/components/schedules/schedule-edit-utils'; -import type { ScheduleFormFields } from '@desktop-client/components/schedules/ScheduleEditForm'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; -import { liveQuery } from '@desktop-client/queries/liveQuery'; +import { updateScheduleConditions } from '#components/schedules/schedule-edit-utils'; +import type { ScheduleFormFields } from '#components/schedules/ScheduleEditForm'; +import { aqlQuery } from '#queries/aqlQuery'; +import { liveQuery } from '#queries/liveQuery'; export type ScheduleEditState = { isCustom?: boolean; diff --git a/packages/desktop-client/src/hooks/useSchedules.ts b/packages/desktop-client/src/hooks/useSchedules.ts index 5f5d0005cd..3fdad7d745 100644 --- a/packages/desktop-client/src/hooks/useSchedules.ts +++ b/packages/desktop-client/src/hooks/useSchedules.ts @@ -1,25 +1,25 @@ import { useEffect, useRef, useState } from 'react'; -import { q } from 'loot-core/shared/query'; -import type { Query } from 'loot-core/shared/query'; +import { q } from '@actual-app/core/shared/query'; +import type { Query } from '@actual-app/core/shared/query'; import { getHasTransactionsQuery, getStatus, getStatusLabel, -} from 'loot-core/shared/schedules'; -import type { ScheduleStatuses } from 'loot-core/shared/schedules'; +} from '@actual-app/core/shared/schedules'; +import type { ScheduleStatuses } from '@actual-app/core/shared/schedules'; import type { AccountEntity, ScheduleEntity, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; + +import { accountFilter } from '#queries'; +import { liveQuery } from '#queries/liveQuery'; +import type { LiveQuery } from '#queries/liveQuery'; import { useSyncedPref } from './useSyncedPref'; -import { accountFilter } from '@desktop-client/queries'; -import { liveQuery } from '@desktop-client/queries/liveQuery'; -import type { LiveQuery } from '@desktop-client/queries/liveQuery'; - export type ScheduleStatusLabelType = ReturnType; export type ScheduleStatusLabels = Map< ScheduleEntity['id'], diff --git a/packages/desktop-client/src/hooks/useSelected.tsx b/packages/desktop-client/src/hooks/useSelected.tsx index c916d75c96..b049d21f47 100644 --- a/packages/desktop-client/src/hooks/useSelected.tsx +++ b/packages/desktop-client/src/hooks/useSelected.tsx @@ -9,9 +9,9 @@ import React, { } from 'react'; import type { Dispatch, ReactElement, ReactNode } from 'react'; -import { listen } from 'loot-core/platform/client/connection'; -import * as undo from 'loot-core/platform/client/undo'; -import type { UndoState } from 'loot-core/server/undo'; +import { listen } from '@actual-app/core/platform/client/connection'; +import * as undo from '@actual-app/core/platform/client/undo'; +import type { UndoState } from '@actual-app/core/server/undo'; type Range = { start: T; end: T | null }; type Item = { id: string }; diff --git a/packages/desktop-client/src/hooks/useSendPlatformRequest.ts b/packages/desktop-client/src/hooks/useSendPlatformRequest.ts index df610b5194..7caa232551 100644 --- a/packages/desktop-client/src/hooks/useSendPlatformRequest.ts +++ b/packages/desktop-client/src/hooks/useSendPlatformRequest.ts @@ -1,8 +1,8 @@ // @ts-strict-ignore import { useEffect, useState } from 'react'; -import { send } from 'loot-core/platform/client/connection'; -import type { Handlers } from 'loot-core/types/handlers'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { Handlers } from '@actual-app/core/types/handlers'; export function useSendPlatformRequest( name: K, diff --git a/packages/desktop-client/src/hooks/useServerPref.ts b/packages/desktop-client/src/hooks/useServerPref.ts index 2002d54e8e..cb43db555f 100644 --- a/packages/desktop-client/src/hooks/useServerPref.ts +++ b/packages/desktop-client/src/hooks/useServerPref.ts @@ -1,9 +1,9 @@ import { useCallback } from 'react'; -import type { ServerPrefs } from 'loot-core/types/prefs'; +import type { ServerPrefs } from '@actual-app/core/types/prefs'; -import { saveServerPrefs } from '@desktop-client/prefs/prefsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; +import { saveServerPrefs } from '#prefs/prefsSlice'; +import { useDispatch, useSelector } from '#redux'; type SetServerPrefAction = ( value: ServerPrefs[K], diff --git a/packages/desktop-client/src/hooks/useSheetName.tsx b/packages/desktop-client/src/hooks/useSheetName.tsx index ad63f5f5c6..d0df68c416 100644 --- a/packages/desktop-client/src/hooks/useSheetName.tsx +++ b/packages/desktop-client/src/hooks/useSheetName.tsx @@ -2,11 +2,7 @@ import { createContext, useContext } from 'react'; import type { PropsWithChildren } from 'react'; -import type { - Binding, - SheetFields, - SheetNames, -} from '@desktop-client/spreadsheet'; +import type { Binding, SheetFields, SheetNames } from '#spreadsheet'; function unresolveName(name) { const idx = name.indexOf('!'); diff --git a/packages/desktop-client/src/hooks/useSheetValue.ts b/packages/desktop-client/src/hooks/useSheetValue.ts index f87643f198..1088ef6dc3 100644 --- a/packages/desktop-client/src/hooks/useSheetValue.ts +++ b/packages/desktop-client/src/hooks/useSheetValue.ts @@ -1,15 +1,15 @@ import { useLayoutEffect, useRef, useState } from 'react'; -import { useSheetName } from './useSheetName'; -import { useSpreadsheet } from './useSpreadsheet'; - import type { Binding, BindingObject, SheetFields, SheetNames, Spreadsheets, -} from '@desktop-client/spreadsheet'; +} from '#spreadsheet'; + +import { useSheetName } from './useSheetName'; +import { useSpreadsheet } from './useSpreadsheet'; type SheetValueResult< SheetName extends SheetNames, diff --git a/packages/desktop-client/src/hooks/useSimpleFinStatus.ts b/packages/desktop-client/src/hooks/useSimpleFinStatus.ts index a4eb8879d5..31cc2c0b70 100644 --- a/packages/desktop-client/src/hooks/useSimpleFinStatus.ts +++ b/packages/desktop-client/src/hooks/useSimpleFinStatus.ts @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react'; -import { send } from 'loot-core/platform/client/connection'; +import { send } from '@actual-app/core/platform/client/connection'; import { useSyncServerStatus } from './useSyncServerStatus'; diff --git a/packages/desktop-client/src/hooks/useSpreadsheet.tsx b/packages/desktop-client/src/hooks/useSpreadsheet.tsx index 9b16bdc80d..63096cecd2 100644 --- a/packages/desktop-client/src/hooks/useSpreadsheet.tsx +++ b/packages/desktop-client/src/hooks/useSpreadsheet.tsx @@ -1,11 +1,10 @@ import { createContext, useContext, useEffect, useMemo } from 'react'; import type { ReactNode } from 'react'; +import { listen, send } from '@actual-app/core/platform/client/connection'; +import type { Query } from '@actual-app/core/shared/query'; import { LRUCache } from 'lru-cache'; -import { listen, send } from 'loot-core/platform/client/connection'; -import type { Query } from 'loot-core/shared/query'; - type SpreadsheetContextValue = ReturnType; const SpreadsheetContext = createContext( undefined, diff --git a/packages/desktop-client/src/hooks/useSyncServerStatus.ts b/packages/desktop-client/src/hooks/useSyncServerStatus.ts index 797d6ba570..8743be6609 100644 --- a/packages/desktop-client/src/hooks/useSyncServerStatus.ts +++ b/packages/desktop-client/src/hooks/useSyncServerStatus.ts @@ -1,5 +1,5 @@ -import { useServerURL } from '@desktop-client/components/ServerContext'; -import { useSelector } from '@desktop-client/redux'; +import { useServerURL } from '#components/ServerContext'; +import { useSelector } from '#redux'; type SyncServerStatus = 'offline' | 'no-server' | 'online'; diff --git a/packages/desktop-client/src/hooks/useSyncedPref.ts b/packages/desktop-client/src/hooks/useSyncedPref.ts index 2d18e458ce..17f09ce319 100644 --- a/packages/desktop-client/src/hooks/useSyncedPref.ts +++ b/packages/desktop-client/src/hooks/useSyncedPref.ts @@ -1,9 +1,9 @@ import { useCallback } from 'react'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; -import { saveSyncedPrefs } from '@desktop-client/prefs/prefsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; +import { saveSyncedPrefs } from '#prefs/prefsSlice'; +import { useDispatch, useSelector } from '#redux'; type SetSyncedPrefAction = ( value: SyncedPrefs[K], diff --git a/packages/desktop-client/src/hooks/useSyncedPrefs.ts b/packages/desktop-client/src/hooks/useSyncedPrefs.ts index 8f8bf2c72e..bb1caad5c9 100644 --- a/packages/desktop-client/src/hooks/useSyncedPrefs.ts +++ b/packages/desktop-client/src/hooks/useSyncedPrefs.ts @@ -1,9 +1,9 @@ import { useCallback } from 'react'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; -import { saveSyncedPrefs } from '@desktop-client/prefs/prefsSlice'; -import { useDispatch, useSelector } from '@desktop-client/redux'; +import { saveSyncedPrefs } from '#prefs/prefsSlice'; +import { useDispatch, useSelector } from '#redux'; type SetSyncedPrefsAction = (value: Partial) => void; diff --git a/packages/desktop-client/src/hooks/useTagCSS.ts b/packages/desktop-client/src/hooks/useTagCSS.ts index 25efdaba68..d98f55afe8 100644 --- a/packages/desktop-client/src/hooks/useTagCSS.ts +++ b/packages/desktop-client/src/hooks/useTagCSS.ts @@ -1,14 +1,13 @@ import { useCallback } from 'react'; import { theme as themeStyle } from '@actual-app/components/theme'; +import type { Theme } from '@actual-app/core/types/prefs'; import { css } from '@emotion/css'; -import type { Theme } from 'loot-core/types/prefs'; +import { useTheme } from '#style'; import { useTags } from './useTags'; -import { useTheme } from '@desktop-client/style'; - export function useTagCSS() { const { data: tags = [] } = useTags(); const [theme] = useTheme(); diff --git a/packages/desktop-client/src/hooks/useTags.ts b/packages/desktop-client/src/hooks/useTags.ts index 7856084c92..e6a9fcb183 100644 --- a/packages/desktop-client/src/hooks/useTags.ts +++ b/packages/desktop-client/src/hooks/useTags.ts @@ -1,6 +1,6 @@ import { useQuery } from '@tanstack/react-query'; -import { tagQueries } from '@desktop-client/tags/queries'; +import { tagQueries } from '#tags/queries'; export function useTags() { return useQuery(tagQueries.list()); diff --git a/packages/desktop-client/src/hooks/useThemeCatalog.ts b/packages/desktop-client/src/hooks/useThemeCatalog.ts index 31946ea3ff..db92ede285 100644 --- a/packages/desktop-client/src/hooks/useThemeCatalog.ts +++ b/packages/desktop-client/src/hooks/useThemeCatalog.ts @@ -1,6 +1,6 @@ import { useEffect, useState } from 'react'; -import type { CatalogTheme } from '@desktop-client/style/customThemes'; +import type { CatalogTheme } from '#style/customThemes'; const CATALOG_URL = `https://raw.githubusercontent.com/actualbudget/actual/${process.env.REACT_APP_BRANCH || 'master'}/packages/desktop-client/src/data/customThemeCatalog.json`; diff --git a/packages/desktop-client/src/hooks/useTransactionBatchActions.ts b/packages/desktop-client/src/hooks/useTransactionBatchActions.ts index c6200af77e..5c92407edd 100644 --- a/packages/desktop-client/src/hooks/useTransactionBatchActions.ts +++ b/packages/desktop-client/src/hooks/useTransactionBatchActions.ts @@ -1,32 +1,32 @@ import { useTranslation } from 'react-i18next'; -import { send } from 'loot-core/platform/client/connection'; -import * as monthUtils from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; +import { send } from '@actual-app/core/platform/client/connection'; +import * as monthUtils from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; import { deleteTransaction, realizeTempTransactions, ungroupTransaction, ungroupTransactions, updateTransaction, -} from 'loot-core/shared/transactions'; -import { validForTransfer } from 'loot-core/shared/transfer'; -import { applyChanges, applyFindReplace } from 'loot-core/shared/util'; -import type { Diff } from 'loot-core/shared/util'; +} from '@actual-app/core/shared/transactions'; +import { validForTransfer } from '@actual-app/core/shared/transfer'; +import { applyChanges, applyFindReplace } from '@actual-app/core/shared/util'; +import type { Diff } from '@actual-app/core/shared/util'; import type { AccountEntity, PayeeEntity, ScheduleEntity, TransactionEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; -import { pushModal } from '@desktop-client/modals/modalsSlice'; +import { pushModal } from '#modals/modalsSlice'; import type { ConfirmTransactionEditReason, Modal as ModalType, -} from '@desktop-client/modals/modalsSlice'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; -import { useDispatch } from '@desktop-client/redux'; +} from '#modals/modalsSlice'; +import { aqlQuery } from '#queries/aqlQuery'; +import { useDispatch } from '#redux'; type BatchReconciledReason = Extract< ConfirmTransactionEditReason, diff --git a/packages/desktop-client/src/hooks/useTransactionFilters.ts b/packages/desktop-client/src/hooks/useTransactionFilters.ts index 54d2bee2b9..d4bb55bdba 100644 --- a/packages/desktop-client/src/hooks/useTransactionFilters.ts +++ b/packages/desktop-client/src/hooks/useTransactionFilters.ts @@ -1,8 +1,8 @@ // @ts-strict-ignore import { useMemo } from 'react'; -import { q } from 'loot-core/shared/query'; -import type { TransactionFilterEntity } from 'loot-core/types/models'; +import { q } from '@actual-app/core/shared/query'; +import type { TransactionFilterEntity } from '@actual-app/core/types/models'; import { useQuery } from './useQuery'; diff --git a/packages/desktop-client/src/hooks/useTransactions.ts b/packages/desktop-client/src/hooks/useTransactions.ts index 5ea7fd10bd..f6f32c2398 100644 --- a/packages/desktop-client/src/hooks/useTransactions.ts +++ b/packages/desktop-client/src/hooks/useTransactions.ts @@ -1,18 +1,17 @@ import { useEffect, useEffectEvent, useState } from 'react'; +import { listen } from '@actual-app/core/platform/client/connection'; +import type { Query } from '@actual-app/core/shared/query'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { TransactionEntity } from '@actual-app/core/types/models'; +import type { ServerEvents } from '@actual-app/core/types/server-events'; import { useInfiniteQuery } from '@tanstack/react-query'; import type { InfiniteData, UseInfiniteQueryResult, } from '@tanstack/react-query'; -import { listen } from 'loot-core/platform/client/connection'; -import type { Query } from 'loot-core/shared/query'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { TransactionEntity } from 'loot-core/types/models'; -import type { ServerEvents } from 'loot-core/types/server-events'; - -import { transactionQueries } from '@desktop-client/transactions'; +import { transactionQueries } from '#transactions'; // Mirrors the `splits` AQL option from the server type TransactionSplitsOption = 'all' | 'inline' | 'grouped' | 'none'; diff --git a/packages/desktop-client/src/hooks/useTransactionsSearch.ts b/packages/desktop-client/src/hooks/useTransactionsSearch.ts index 5d99cf6dea..43e745b7b1 100644 --- a/packages/desktop-client/src/hooks/useTransactionsSearch.ts +++ b/packages/desktop-client/src/hooks/useTransactionsSearch.ts @@ -1,10 +1,9 @@ import { useEffect, useMemo, useRef, useState } from 'react'; +import type { Query } from '@actual-app/core/shared/query'; import debounce from 'lodash/debounce'; -import type { Query } from 'loot-core/shared/query'; - -import * as queries from '@desktop-client/queries'; +import * as queries from '#queries'; type UseTransactionsSearchProps = { updateQuery: (updateFn: (searchQuery: Query) => Query) => void; diff --git a/packages/desktop-client/src/hooks/useUndo.ts b/packages/desktop-client/src/hooks/useUndo.ts index febe8f0aa6..38fc4c3055 100644 --- a/packages/desktop-client/src/hooks/useUndo.ts +++ b/packages/desktop-client/src/hooks/useUndo.ts @@ -3,10 +3,10 @@ import { useTranslation } from 'react-i18next'; import { useResponsive } from '@actual-app/components/hooks/useResponsive'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import type { Notification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import { redo, undo } from '@desktop-client/undo'; +import { addNotification } from '#notifications/notificationsSlice'; +import type { Notification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import { redo, undo } from '#undo'; type UndoActions = { undo: () => void; diff --git a/packages/desktop-client/src/hooks/useUpdatedAccounts.ts b/packages/desktop-client/src/hooks/useUpdatedAccounts.ts index b0e29dcb69..89fd1ff264 100644 --- a/packages/desktop-client/src/hooks/useUpdatedAccounts.ts +++ b/packages/desktop-client/src/hooks/useUpdatedAccounts.ts @@ -1,4 +1,4 @@ -import { useSelector } from '@desktop-client/redux'; +import { useSelector } from '#redux'; export function useUpdatedAccounts() { return useSelector(state => state.account.updatedAccounts); diff --git a/packages/desktop-client/src/i18n.ts b/packages/desktop-client/src/i18n.ts index 65713473f8..c3a79e5544 100644 --- a/packages/desktop-client/src/i18n.ts +++ b/packages/desktop-client/src/i18n.ts @@ -1,10 +1,9 @@ import { initReactI18next } from 'react-i18next'; +import * as Platform from '@actual-app/core/shared/platform'; import i18n from 'i18next'; import resourcesToBackend from 'i18next-resources-to-backend'; -import * as Platform from 'loot-core/shared/platform'; - import { languages } from './languages'; export const availableLanguages = Platform.isPlaywright diff --git a/packages/desktop-client/src/index.tsx b/packages/desktop-client/src/index.tsx index c88d1a79fd..899f371b90 100644 --- a/packages/desktop-client/src/index.tsx +++ b/packages/desktop-client/src/index.tsx @@ -8,12 +8,11 @@ import { createRoot } from 'react-dom/client'; import { Provider } from 'react-redux'; import type { NavigateFunction } from 'react-router'; +import { send } from '@actual-app/core/platform/client/connection'; +import { q } from '@actual-app/core/shared/query'; import { bindActionCreators } from '@reduxjs/toolkit'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; -import { send } from 'loot-core/platform/client/connection'; -import { q } from 'loot-core/shared/query'; - import * as accountsSlice from './accounts/accountsSlice'; import * as appSlice from './app/appSlice'; import { AuthProvider } from './auth/AuthProvider'; diff --git a/packages/desktop-client/src/modals/modalsSlice.ts b/packages/desktop-client/src/modals/modalsSlice.ts index c47f614187..dac79c63c3 100644 --- a/packages/desktop-client/src/modals/modalsSlice.ts +++ b/packages/desktop-client/src/modals/modalsSlice.ts @@ -1,9 +1,6 @@ -import { createSlice } from '@reduxjs/toolkit'; -import type { PayloadAction } from '@reduxjs/toolkit'; - -import { send } from 'loot-core/platform/client/connection'; -import type { IntegerAmount } from 'loot-core/shared/util'; -import type { File } from 'loot-core/types/file'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { IntegerAmount } from '@actual-app/core/shared/util'; +import type { File } from '@actual-app/core/types/file'; import type { AccountEntity, CategoryEntity, @@ -17,14 +14,16 @@ import type { TransactionEntity, UserAccessEntity, UserEntity, -} from 'loot-core/types/models'; -import type { Template } from 'loot-core/types/models/templates'; +} from '@actual-app/core/types/models'; +import type { Template } from '@actual-app/core/types/models/templates'; +import { createSlice } from '@reduxjs/toolkit'; +import type { PayloadAction } from '@reduxjs/toolkit'; -import { accountQueries } from '@desktop-client/accounts'; -import { resetApp, setAppState } from '@desktop-client/app/appSlice'; -import type { SelectLinkedAccountsModalProps } from '@desktop-client/components/modals/SelectLinkedAccountsModal'; -import { createAppAsyncThunk } from '@desktop-client/redux'; -import { signOut } from '@desktop-client/users/usersSlice'; +import { accountQueries } from '#accounts'; +import { resetApp, setAppState } from '#app/appSlice'; +import type { SelectLinkedAccountsModalProps } from '#components/modals/SelectLinkedAccountsModal'; +import { createAppAsyncThunk } from '#redux'; +import { signOut } from '#users/usersSlice'; const sliceName = 'modals'; diff --git a/packages/desktop-client/src/notes/DesktopLinkedNotes.tsx b/packages/desktop-client/src/notes/DesktopLinkedNotes.tsx index 6463100770..f23278ccdd 100644 --- a/packages/desktop-client/src/notes/DesktopLinkedNotes.tsx +++ b/packages/desktop-client/src/notes/DesktopLinkedNotes.tsx @@ -2,15 +2,14 @@ import type { MouseEvent } from 'react'; import { useTranslation } from 'react-i18next'; import { theme } from '@actual-app/components/theme'; +import { isElectron } from '@actual-app/core/shared/environment'; -import { isElectron } from 'loot-core/shared/environment'; +import { Link } from '#components/common/Link'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; import { normalizeUrl } from './linkParser'; -import { Link } from '@desktop-client/components/common/Link'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; - type DesktopLinkedNotesProps = { displayText: string; url: string; diff --git a/packages/desktop-client/src/notes/DesktopTaggedNotes.tsx b/packages/desktop-client/src/notes/DesktopTaggedNotes.tsx index 55f98af8f3..38a06096b4 100644 --- a/packages/desktop-client/src/notes/DesktopTaggedNotes.tsx +++ b/packages/desktop-client/src/notes/DesktopTaggedNotes.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { Button } from '@actual-app/components/button'; import { View } from '@actual-app/components/view'; -import { useTagCSS } from '@desktop-client/hooks/useTagCSS'; +import { useTagCSS } from '#hooks/useTagCSS'; type DesktopTaggedNotesProps = { content: string; diff --git a/packages/desktop-client/src/notes/MobileLinkedNotes.tsx b/packages/desktop-client/src/notes/MobileLinkedNotes.tsx index e66fc9a494..548f5b855e 100644 --- a/packages/desktop-client/src/notes/MobileLinkedNotes.tsx +++ b/packages/desktop-client/src/notes/MobileLinkedNotes.tsx @@ -3,15 +3,14 @@ import { useTranslation } from 'react-i18next'; import { Text } from '@actual-app/components/text'; import { theme } from '@actual-app/components/theme'; +import { isElectron } from '@actual-app/core/shared/environment'; import { css } from '@emotion/css'; -import { isElectron } from 'loot-core/shared/environment'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; import { normalizeUrl } from './linkParser'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; - type MobileLinkedNotesProps = { displayText: string; url: string; diff --git a/packages/desktop-client/src/notes/MobileTaggedNotes.tsx b/packages/desktop-client/src/notes/MobileTaggedNotes.tsx index 38601dd959..ad40654e74 100644 --- a/packages/desktop-client/src/notes/MobileTaggedNotes.tsx +++ b/packages/desktop-client/src/notes/MobileTaggedNotes.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { Text } from '@actual-app/components/text'; -import { useTagCSS } from '@desktop-client/hooks/useTagCSS'; +import { useTagCSS } from '#hooks/useTagCSS'; type MobileTaggedNotesProps = { content: string; diff --git a/packages/desktop-client/src/notifications/notificationsSlice.ts b/packages/desktop-client/src/notifications/notificationsSlice.ts index 9a5a6994b6..17de482dce 100644 --- a/packages/desktop-client/src/notifications/notificationsSlice.ts +++ b/packages/desktop-client/src/notifications/notificationsSlice.ts @@ -3,7 +3,7 @@ import type { PayloadAction } from '@reduxjs/toolkit'; import { t } from 'i18next'; import { v4 as uuidv4 } from 'uuid'; -import { resetApp } from '@desktop-client/app/appSlice'; +import { resetApp } from '#app/appSlice'; const sliceName = 'notifications'; diff --git a/packages/desktop-client/src/payees/location-adapters.ts b/packages/desktop-client/src/payees/location-adapters.ts index ae86ba4468..f1ce72819b 100644 --- a/packages/desktop-client/src/payees/location-adapters.ts +++ b/packages/desktop-client/src/payees/location-adapters.ts @@ -1,9 +1,9 @@ -import { send } from 'loot-core/platform/client/connection'; -import type { LocationCoordinates } from 'loot-core/shared/location-utils'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { LocationCoordinates } from '@actual-app/core/shared/location-utils'; import type { NearbyPayeeEntity, PayeeLocationEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; /** * Abstraction for geolocation functionality diff --git a/packages/desktop-client/src/payees/location-integration.test.ts b/packages/desktop-client/src/payees/location-integration.test.ts index 72bbe3e2ab..9d9dc67f15 100644 --- a/packages/desktop-client/src/payees/location-integration.test.ts +++ b/packages/desktop-client/src/payees/location-integration.test.ts @@ -1,10 +1,9 @@ -import { beforeEach, describe, expect, it } from 'vitest'; - -import type { LocationCoordinates } from 'loot-core/shared/location-utils'; +import type { LocationCoordinates } from '@actual-app/core/shared/location-utils'; import type { NearbyPayeeEntity, PayeeLocationEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { beforeEach, describe, expect, it } from 'vitest'; import type { GeolocationAdapter, diff --git a/packages/desktop-client/src/payees/location-service.ts b/packages/desktop-client/src/payees/location-service.ts index 8f79851467..07825b1961 100644 --- a/packages/desktop-client/src/payees/location-service.ts +++ b/packages/desktop-client/src/payees/location-service.ts @@ -1,9 +1,9 @@ -import { DEFAULT_MAX_DISTANCE_METERS } from 'loot-core/shared/constants'; -import type { LocationCoordinates } from 'loot-core/shared/location-utils'; +import { DEFAULT_MAX_DISTANCE_METERS } from '@actual-app/core/shared/constants'; +import type { LocationCoordinates } from '@actual-app/core/shared/location-utils'; import type { NearbyPayeeEntity, PayeeLocationEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; import type { GeolocationAdapter, diff --git a/packages/desktop-client/src/payees/mutations.ts b/packages/desktop-client/src/payees/mutations.ts index 23ddca1ad3..c87df0a2bb 100644 --- a/packages/desktop-client/src/payees/mutations.ts +++ b/packages/desktop-client/src/payees/mutations.ts @@ -1,19 +1,18 @@ import { useTranslation } from 'react-i18next'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { PayeeEntity } from '@actual-app/core/types/models'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import type { QueryClient, QueryKey } from '@tanstack/react-query'; import { v4 as uuidv4 } from 'uuid'; -import { send } from 'loot-core/platform/client/connection'; -import type { PayeeEntity } from 'loot-core/types/models'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import type { AppDispatch } from '#redux/store'; import { locationService } from './location'; import { payeeQueries } from './queries'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import type { AppDispatch } from '@desktop-client/redux/store'; - function invalidateQueries(queryClient: QueryClient, queryKey?: QueryKey) { void queryClient.invalidateQueries({ queryKey: queryKey ?? payeeQueries.lists(), diff --git a/packages/desktop-client/src/payees/queries.ts b/packages/desktop-client/src/payees/queries.ts index eeef259bd4..6ea80f8019 100644 --- a/packages/desktop-client/src/payees/queries.ts +++ b/packages/desktop-client/src/payees/queries.ts @@ -1,19 +1,18 @@ -import { queryOptions } from '@tanstack/react-query'; -import { t } from 'i18next'; -import memoizeOne from 'memoize-one'; - -import { send } from 'loot-core/platform/client/connection'; -import { groupById } from 'loot-core/shared/util'; +import { send } from '@actual-app/core/platform/client/connection'; +import { groupById } from '@actual-app/core/shared/util'; import type { AccountEntity, NearbyPayeeEntity, PayeeEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { queryOptions } from '@tanstack/react-query'; +import { t } from 'i18next'; +import memoizeOne from 'memoize-one'; + +import { getAccountsById } from '#accounts/accountsSlice'; import { locationService } from './location'; -import { getAccountsById } from '@desktop-client/accounts/accountsSlice'; - export const payeeQueries = { all: () => ['payees'], lists: () => [...payeeQueries.all(), 'lists'], diff --git a/packages/desktop-client/src/prefs/prefsSlice.ts b/packages/desktop-client/src/prefs/prefsSlice.ts index 48b52a8a95..73724dd763 100644 --- a/packages/desktop-client/src/prefs/prefsSlice.ts +++ b/packages/desktop-client/src/prefs/prefsSlice.ts @@ -1,20 +1,22 @@ -import { createSlice } from '@reduxjs/toolkit'; -import type { PayloadAction } from '@reduxjs/toolkit'; - -import { send } from 'loot-core/platform/client/connection'; -import { parseNumberFormat, setNumberFormat } from 'loot-core/shared/util'; +import { send } from '@actual-app/core/platform/client/connection'; +import { + parseNumberFormat, + setNumberFormat, +} from '@actual-app/core/shared/util'; import type { GlobalPrefs, MetadataPrefs, ServerPrefs, SyncedPrefs, -} from 'loot-core/types/prefs'; +} from '@actual-app/core/types/prefs'; +import { createSlice } from '@reduxjs/toolkit'; +import type { PayloadAction } from '@reduxjs/toolkit'; -import { resetApp } from '@desktop-client/app/appSlice'; -import { setI18NextLanguage } from '@desktop-client/i18n'; -import { closeModal } from '@desktop-client/modals/modalsSlice'; -import { createAppAsyncThunk } from '@desktop-client/redux'; -import { getUserData } from '@desktop-client/users/usersSlice'; +import { resetApp } from '#app/appSlice'; +import { setI18NextLanguage } from '#i18n'; +import { closeModal } from '#modals/modalsSlice'; +import { createAppAsyncThunk } from '#redux'; +import { getUserData } from '#users/usersSlice'; const sliceName = 'prefs'; diff --git a/packages/desktop-client/src/queries/aqlQuery.test.ts b/packages/desktop-client/src/queries/aqlQuery.test.ts index b447c19a05..35a35fc46a 100644 --- a/packages/desktop-client/src/queries/aqlQuery.test.ts +++ b/packages/desktop-client/src/queries/aqlQuery.test.ts @@ -1,5 +1,5 @@ -import * as connection from 'loot-core/platform/client/connection'; -import { q } from 'loot-core/shared/query'; +import * as connection from '@actual-app/core/platform/client/connection'; +import { q } from '@actual-app/core/shared/query'; import { aqlQuery } from './aqlQuery'; diff --git a/packages/desktop-client/src/queries/aqlQuery.ts b/packages/desktop-client/src/queries/aqlQuery.ts index f7e8f65585..329325b197 100644 --- a/packages/desktop-client/src/queries/aqlQuery.ts +++ b/packages/desktop-client/src/queries/aqlQuery.ts @@ -1,5 +1,5 @@ -import { send } from 'loot-core/platform/client/connection'; -import type { Query } from 'loot-core/shared/query'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { Query } from '@actual-app/core/shared/query'; export async function aqlQuery(query: Query) { return send('query', query.serialize()); diff --git a/packages/desktop-client/src/queries/index.ts b/packages/desktop-client/src/queries/index.ts index 9b5ac7ec42..63d8e1b58b 100644 --- a/packages/desktop-client/src/queries/index.ts +++ b/packages/desktop-client/src/queries/index.ts @@ -1,18 +1,20 @@ -// @ts-strict-ignore -import { isValid as isDateValid, parse as parseDate } from 'date-fns'; - import { dayFromDate, getDayMonthFormat, getDayMonthRegex, getShortYearFormat, getShortYearRegex, -} from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import type { Query } from 'loot-core/shared/query'; -import { amountToInteger, currencyToAmount } from 'loot-core/shared/util'; -import type { AccountEntity } from 'loot-core/types/models'; -import type { SyncedPrefs } from 'loot-core/types/prefs'; +} from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import type { Query } from '@actual-app/core/shared/query'; +import { + amountToInteger, + currencyToAmount, +} from '@actual-app/core/shared/util'; +import type { AccountEntity } from '@actual-app/core/types/models'; +import type { SyncedPrefs } from '@actual-app/core/types/prefs'; +// @ts-strict-ignore +import { isValid as isDateValid, parse as parseDate } from 'date-fns'; export function accountFilter( accountId?: diff --git a/packages/desktop-client/src/queries/liveQuery.test.ts b/packages/desktop-client/src/queries/liveQuery.test.ts index 7a299b0637..7955fc5a4f 100644 --- a/packages/desktop-client/src/queries/liveQuery.test.ts +++ b/packages/desktop-client/src/queries/liveQuery.test.ts @@ -1,7 +1,7 @@ // @ts-strict-ignore -import * as connection from 'loot-core/platform/client/connection'; -import { q } from 'loot-core/shared/query'; -import { resetTracer, tracer } from 'loot-core/shared/test-helpers'; +import * as connection from '@actual-app/core/platform/client/connection'; +import { q } from '@actual-app/core/shared/query'; +import { resetTracer, tracer } from '@actual-app/core/shared/test-helpers'; import { liveQuery } from './liveQuery'; diff --git a/packages/desktop-client/src/queries/liveQuery.ts b/packages/desktop-client/src/queries/liveQuery.ts index 79e6602ff1..ba5177529b 100644 --- a/packages/desktop-client/src/queries/liveQuery.ts +++ b/packages/desktop-client/src/queries/liveQuery.ts @@ -1,6 +1,6 @@ // @ts-strict-ignore -import { listen } from 'loot-core/platform/client/connection'; -import type { Query } from 'loot-core/shared/query'; +import { listen } from '@actual-app/core/platform/client/connection'; +import type { Query } from '@actual-app/core/shared/query'; import { aqlQuery } from './aqlQuery'; diff --git a/packages/desktop-client/src/queries/pagedQuery.test.ts b/packages/desktop-client/src/queries/pagedQuery.test.ts index 2b6510a698..83a9de71a6 100644 --- a/packages/desktop-client/src/queries/pagedQuery.test.ts +++ b/packages/desktop-client/src/queries/pagedQuery.test.ts @@ -1,8 +1,8 @@ // @ts-strict-ignore -import * as connection from 'loot-core/platform/client/connection'; -import { subDays } from 'loot-core/shared/months'; -import { q } from 'loot-core/shared/query'; -import { resetTracer, tracer } from 'loot-core/shared/test-helpers'; +import * as connection from '@actual-app/core/platform/client/connection'; +import { subDays } from '@actual-app/core/shared/months'; +import { q } from '@actual-app/core/shared/query'; +import { resetTracer, tracer } from '@actual-app/core/shared/test-helpers'; import { pagedQuery } from './pagedQuery'; diff --git a/packages/desktop-client/src/queries/pagedQuery.ts b/packages/desktop-client/src/queries/pagedQuery.ts index 4db0bdcb7f..0f1c15ba38 100644 --- a/packages/desktop-client/src/queries/pagedQuery.ts +++ b/packages/desktop-client/src/queries/pagedQuery.ts @@ -1,7 +1,7 @@ // @ts-strict-ignore -import { once } from 'loot-core/shared/async'; -import { getPrimaryOrderBy } from 'loot-core/shared/query'; -import type { Query } from 'loot-core/shared/query'; +import { once } from '@actual-app/core/shared/async'; +import { getPrimaryOrderBy } from '@actual-app/core/shared/query'; +import type { Query } from '@actual-app/core/shared/query'; import { aqlQuery } from './aqlQuery'; import { LiveQuery } from './liveQuery'; diff --git a/packages/desktop-client/src/redux/store.ts b/packages/desktop-client/src/redux/store.ts index fd601d8c3d..4885d63b68 100644 --- a/packages/desktop-client/src/redux/store.ts +++ b/packages/desktop-client/src/redux/store.ts @@ -9,36 +9,36 @@ import type { QueryClient } from '@tanstack/react-query'; import { name as accountsSliceName, reducer as accountsSliceReducer, -} from '@desktop-client/accounts/accountsSlice'; +} from '#accounts/accountsSlice'; import { name as appSliceName, reducer as appSliceReducer, -} from '@desktop-client/app/appSlice'; +} from '#app/appSlice'; import { name as budgetfilesSliceName, reducer as budgetfilesSliceReducer, -} from '@desktop-client/budgetfiles/budgetfilesSlice'; +} from '#budgetfiles/budgetfilesSlice'; import { name as modalsSliceName, reducer as modalsSliceReducer, -} from '@desktop-client/modals/modalsSlice'; +} from '#modals/modalsSlice'; import { addNotification, name as notificationsSliceName, reducer as notificationsSliceReducer, -} from '@desktop-client/notifications/notificationsSlice'; +} from '#notifications/notificationsSlice'; import { name as prefsSliceName, reducer as prefsSliceReducer, -} from '@desktop-client/prefs/prefsSlice'; +} from '#prefs/prefsSlice'; import { name as transactionsSliceName, reducer as transactionsSliceReducer, -} from '@desktop-client/transactions/transactionsSlice'; +} from '#transactions/transactionsSlice'; import { name as usersSliceName, reducer as usersSliceReducer, -} from '@desktop-client/users/usersSlice'; +} from '#users/usersSlice'; const rootReducer = combineReducers({ [accountsSliceName]: accountsSliceReducer, diff --git a/packages/desktop-client/src/reports/mutations.ts b/packages/desktop-client/src/reports/mutations.ts index f8126f192a..227597bf90 100644 --- a/packages/desktop-client/src/reports/mutations.ts +++ b/packages/desktop-client/src/reports/mutations.ts @@ -1,27 +1,26 @@ import { useTranslation } from 'react-i18next'; -import { useMutation, useQueryClient } from '@tanstack/react-query'; -import type { QueryClient, QueryKey } from '@tanstack/react-query'; -import { v4 as uuidv4 } from 'uuid'; - -import { sendCatch } from 'loot-core/platform/client/connection'; -import type { send } from 'loot-core/platform/client/connection'; +import { sendCatch } from '@actual-app/core/platform/client/connection'; +import type { send } from '@actual-app/core/platform/client/connection'; import type { CustomReportEntity, DashboardPageEntity, DashboardWidgetEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; import type { EverythingButIdOptional, WithOptional, -} from 'loot-core/types/util'; +} from '@actual-app/core/types/util'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import type { QueryClient, QueryKey } from '@tanstack/react-query'; +import { v4 as uuidv4 } from 'uuid'; + +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import type { AppDispatch } from '#redux/store'; import { dashboardQueries, reportQueries } from './queries'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import type { AppDispatch } from '@desktop-client/redux/store'; - const sendThrow: typeof send = async (name, args) => { const { error, data } = await sendCatch(name, args); if (error) { diff --git a/packages/desktop-client/src/reports/queries.ts b/packages/desktop-client/src/reports/queries.ts index 9b3e9e9bdc..e461203ab8 100644 --- a/packages/desktop-client/src/reports/queries.ts +++ b/packages/desktop-client/src/reports/queries.ts @@ -1,14 +1,13 @@ -import { queryOptions } from '@tanstack/react-query'; - -import { send } from 'loot-core/platform/client/connection'; -import { q } from 'loot-core/shared/query'; +import { send } from '@actual-app/core/platform/client/connection'; +import { q } from '@actual-app/core/shared/query'; import type { CustomReportEntity, DashboardPageEntity, DashboardWidgetEntity, -} from 'loot-core/types/models'; +} from '@actual-app/core/types/models'; +import { queryOptions } from '@tanstack/react-query'; -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; +import { aqlQuery } from '#queries/aqlQuery'; export const reportQueries = { all: () => ['reports'], diff --git a/packages/desktop-client/src/spreadsheet/bindings.ts b/packages/desktop-client/src/spreadsheet/bindings.ts index 853079905c..261326224d 100644 --- a/packages/desktop-client/src/spreadsheet/bindings.ts +++ b/packages/desktop-client/src/spreadsheet/bindings.ts @@ -1,11 +1,14 @@ -import { q } from 'loot-core/shared/query'; -import type { AccountEntity, CategoryEntity } from 'loot-core/types/models'; +import { q } from '@actual-app/core/shared/query'; +import type { + AccountEntity, + CategoryEntity, +} from '@actual-app/core/types/models'; + +import { uncategorizedTransactions } from '#queries'; import { parametrizedField } from '.'; import type { Binding, SheetFields, SheetNames } from '.'; -import { uncategorizedTransactions } from '@desktop-client/queries'; - type BudgetType = Record< string, SheetFields | ((id: string) => SheetFields) diff --git a/packages/desktop-client/src/spreadsheet/index.ts b/packages/desktop-client/src/spreadsheet/index.ts index ea648a845e..1c7059390d 100644 --- a/packages/desktop-client/src/spreadsheet/index.ts +++ b/packages/desktop-client/src/spreadsheet/index.ts @@ -1,4 +1,4 @@ -import type { Query } from 'loot-core/shared/query'; +import type { Query } from '@actual-app/core/shared/query'; export type Spreadsheets = { account: { diff --git a/packages/desktop-client/src/style/styles.ts b/packages/desktop-client/src/style/styles.ts index 6d358939db..680546561c 100644 --- a/packages/desktop-client/src/style/styles.ts +++ b/packages/desktop-client/src/style/styles.ts @@ -1,7 +1,6 @@ // @ts-strict-ignore import { styles } from '@actual-app/components/styles'; - -import * as Platform from 'loot-core/shared/platform'; +import * as Platform from '@actual-app/core/shared/platform'; let hiddenScrollbars = false; diff --git a/packages/desktop-client/src/style/theme.tsx b/packages/desktop-client/src/style/theme.tsx index 8da44b30a3..800a188fde 100644 --- a/packages/desktop-client/src/style/theme.tsx +++ b/packages/desktop-client/src/style/theme.tsx @@ -1,6 +1,9 @@ import { useEffect, useMemo, useState } from 'react'; -import type { DarkTheme, Theme } from 'loot-core/types/prefs'; +import type { DarkTheme, Theme } from '@actual-app/core/types/prefs'; + +import { useFeatureFlag } from '#hooks/useFeatureFlag'; +import { useGlobalPref } from '#hooks/useGlobalPref'; import { parseInstalledTheme, @@ -11,9 +14,6 @@ import * as darkTheme from './themes/dark'; import * as lightTheme from './themes/light'; import * as midnightTheme from './themes/midnight'; -import { useFeatureFlag } from '@desktop-client/hooks/useFeatureFlag'; -import { useGlobalPref } from '@desktop-client/hooks/useGlobalPref'; - const themes = { light: { name: 'Light', colors: lightTheme }, dark: { name: 'Dark', colors: darkTheme }, diff --git a/packages/desktop-client/src/style/themes/dark.ts b/packages/desktop-client/src/style/themes/dark.ts index b20cf74052..a1cd10a441 100644 --- a/packages/desktop-client/src/style/themes/dark.ts +++ b/packages/desktop-client/src/style/themes/dark.ts @@ -1,4 +1,4 @@ -import * as colorPalette from '@desktop-client/style/palette'; +import * as colorPalette from '#style/palette'; export const pageBackground = colorPalette.gray900; export const pageBackgroundModalActive = colorPalette.gray800; diff --git a/packages/desktop-client/src/style/themes/light.ts b/packages/desktop-client/src/style/themes/light.ts index ce09f466d0..80c4e5b147 100644 --- a/packages/desktop-client/src/style/themes/light.ts +++ b/packages/desktop-client/src/style/themes/light.ts @@ -1,4 +1,4 @@ -import * as colorPalette from '@desktop-client/style/palette'; +import * as colorPalette from '#style/palette'; export const pageBackground = colorPalette.navy100; export const pageBackgroundModalActive = colorPalette.navy200; diff --git a/packages/desktop-client/src/style/themes/midnight.ts b/packages/desktop-client/src/style/themes/midnight.ts index 1b925bb677..2fe2edaeba 100644 --- a/packages/desktop-client/src/style/themes/midnight.ts +++ b/packages/desktop-client/src/style/themes/midnight.ts @@ -1,4 +1,4 @@ -import * as colorPalette from '@desktop-client/style/palette'; +import * as colorPalette from '#style/palette'; export const pageBackground = colorPalette.gray600; export const pageBackgroundModalActive = colorPalette.gray700; diff --git a/packages/desktop-client/src/sync-events.ts b/packages/desktop-client/src/sync-events.ts index 489c9b2db1..3d8f6d0998 100644 --- a/packages/desktop-client/src/sync-events.ts +++ b/packages/desktop-client/src/sync-events.ts @@ -1,8 +1,7 @@ +import { listen, send } from '@actual-app/core/platform/client/connection'; import type { QueryClient } from '@tanstack/react-query'; import { t } from 'i18next'; -import { listen, send } from 'loot-core/platform/client/connection'; - import { accountQueries } from './accounts'; import { resetSync, sync } from './app/appSlice'; import { categoryQueries } from './budget'; diff --git a/packages/desktop-client/src/tags/mutations.ts b/packages/desktop-client/src/tags/mutations.ts index bc44aac9aa..fa402df934 100644 --- a/packages/desktop-client/src/tags/mutations.ts +++ b/packages/desktop-client/src/tags/mutations.ts @@ -1,18 +1,17 @@ import { useTranslation } from 'react-i18next'; +import { send } from '@actual-app/core/platform/client/connection'; +import type { TagEntity } from '@actual-app/core/types/models'; import { useMutation, useQueryClient } from '@tanstack/react-query'; import type { QueryClient, QueryKey } from '@tanstack/react-query'; import { v4 as uuidv4 } from 'uuid'; -import { send } from 'loot-core/platform/client/connection'; -import type { TagEntity } from 'loot-core/types/models'; +import { addNotification } from '#notifications/notificationsSlice'; +import { useDispatch } from '#redux'; +import type { AppDispatch } from '#redux/store'; import { tagQueries } from './queries'; -import { addNotification } from '@desktop-client/notifications/notificationsSlice'; -import { useDispatch } from '@desktop-client/redux'; -import type { AppDispatch } from '@desktop-client/redux/store'; - function invalidateQueries(queryClient: QueryClient, queryKey?: QueryKey) { void queryClient.invalidateQueries({ queryKey: queryKey ?? tagQueries.lists(), diff --git a/packages/desktop-client/src/tags/queries.ts b/packages/desktop-client/src/tags/queries.ts index a7f40efd9a..bd5c10c2e6 100644 --- a/packages/desktop-client/src/tags/queries.ts +++ b/packages/desktop-client/src/tags/queries.ts @@ -1,8 +1,7 @@ +import { send } from '@actual-app/core/platform/client/connection'; +import type { TagEntity } from '@actual-app/core/types/models'; import { queryOptions } from '@tanstack/react-query'; -import { send } from 'loot-core/platform/client/connection'; -import type { TagEntity } from 'loot-core/types/models'; - export const tagQueries = { all: () => ['tags'], lists: () => [...tagQueries.all(), 'lists'], diff --git a/packages/desktop-client/src/transactions/queries.ts b/packages/desktop-client/src/transactions/queries.ts index 3d29b8e2ed..ec404ad811 100644 --- a/packages/desktop-client/src/transactions/queries.ts +++ b/packages/desktop-client/src/transactions/queries.ts @@ -1,9 +1,8 @@ +import type { Query } from '@actual-app/core/shared/query'; +import type { TransactionEntity } from '@actual-app/core/types/models'; import { infiniteQueryOptions, keepPreviousData } from '@tanstack/react-query'; -import type { Query } from 'loot-core/shared/query'; -import type { TransactionEntity } from 'loot-core/types/models'; - -import { aqlQuery } from '@desktop-client/queries/aqlQuery'; +import { aqlQuery } from '#queries/aqlQuery'; export const transactionQueries = { all: () => ['transactions'], diff --git a/packages/desktop-client/src/transactions/transactionsSlice.ts b/packages/desktop-client/src/transactions/transactionsSlice.ts index 54986246d1..b89670189e 100644 --- a/packages/desktop-client/src/transactions/transactionsSlice.ts +++ b/packages/desktop-client/src/transactions/transactionsSlice.ts @@ -1,9 +1,8 @@ +import type { TransactionEntity } from '@actual-app/core/types/models'; import { createSlice } from '@reduxjs/toolkit'; import type { PayloadAction } from '@reduxjs/toolkit'; -import type { TransactionEntity } from 'loot-core/types/models'; - -import { resetApp } from '@desktop-client/app/appSlice'; +import { resetApp } from '#app/appSlice'; const sliceName = 'transactions'; diff --git a/packages/desktop-client/src/undo/index.ts b/packages/desktop-client/src/undo/index.ts index cc4e70125c..f226c23582 100644 --- a/packages/desktop-client/src/undo/index.ts +++ b/packages/desktop-client/src/undo/index.ts @@ -1,4 +1,4 @@ -import { send } from 'loot-core/platform/client/connection'; +import { send } from '@actual-app/core/platform/client/connection'; function throttle(callback: () => void, wait: number) { let waiting = false; diff --git a/packages/desktop-client/src/users/usersSlice.ts b/packages/desktop-client/src/users/usersSlice.ts index 6a426d2d2f..85a82f0e2a 100644 --- a/packages/desktop-client/src/users/usersSlice.ts +++ b/packages/desktop-client/src/users/usersSlice.ts @@ -1,16 +1,12 @@ +import { send } from '@actual-app/core/platform/client/connection'; +import type { Handlers } from '@actual-app/core/types/handlers'; import { createSlice } from '@reduxjs/toolkit'; import type { PayloadAction } from '@reduxjs/toolkit'; -import { send } from 'loot-core/platform/client/connection'; -import type { Handlers } from 'loot-core/types/handlers'; - -import { resetApp } from '@desktop-client/app/appSlice'; -import { - closeBudget, - loadAllFiles, -} from '@desktop-client/budgetfiles/budgetfilesSlice'; -import { loadGlobalPrefs } from '@desktop-client/prefs/prefsSlice'; -import { createAppAsyncThunk } from '@desktop-client/redux'; +import { resetApp } from '#app/appSlice'; +import { closeBudget, loadAllFiles } from '#budgetfiles/budgetfilesSlice'; +import { loadGlobalPrefs } from '#prefs/prefsSlice'; +import { createAppAsyncThunk } from '#redux'; const sliceName = 'user'; diff --git a/packages/desktop-client/src/util/router-tools.ts b/packages/desktop-client/src/util/router-tools.ts index 8b0515a6c2..592acbe90b 100644 --- a/packages/desktop-client/src/util/router-tools.ts +++ b/packages/desktop-client/src/util/router-tools.ts @@ -1,6 +1,6 @@ import { useLayoutEffect } from 'react'; -import { useNavigate } from '@desktop-client/hooks/useNavigate'; +import { useNavigate } from '#hooks/useNavigate'; export function ExposeNavigate() { const navigate = useNavigate(); diff --git a/packages/desktop-client/src/util/ruleUtils.ts b/packages/desktop-client/src/util/ruleUtils.ts index 212035a5fb..5435dcc9bd 100644 --- a/packages/desktop-client/src/util/ruleUtils.ts +++ b/packages/desktop-client/src/util/ruleUtils.ts @@ -1,7 +1,6 @@ +import type { RuleEntity } from '@actual-app/core/types/models'; import { v4 as uuid } from 'uuid'; -import type { RuleEntity } from 'loot-core/types/models'; - export type ActionSplit = { id: string; actions: RuleEntity['actions']; diff --git a/packages/desktop-client/src/util/versions.ts b/packages/desktop-client/src/util/versions.ts index d5b0473150..17df6476da 100644 --- a/packages/desktop-client/src/util/versions.ts +++ b/packages/desktop-client/src/util/versions.ts @@ -1,5 +1,5 @@ // @ts-strict-ignore -import * as Platform from 'loot-core/shared/platform'; +import * as Platform from '@actual-app/core/shared/platform'; function parseSemanticVersion(versionString): [number, number, number] { return versionString diff --git a/packages/desktop-client/tsconfig.json b/packages/desktop-client/tsconfig.json index 69f934e91f..a577ba9f8b 100644 --- a/packages/desktop-client/tsconfig.json +++ b/packages/desktop-client/tsconfig.json @@ -10,12 +10,7 @@ "outDir": "build/ts", "rootDir": ".", "tsBuildInfoFile": "build/ts/.tsbuildinfo", - "paths": { - // TODO: remove and replace with imports from "@actual-app/core" - "loot-core/*": ["../loot-core/src/*"], - // TODO: move to subpath imports - "@desktop-client/*": ["./src/*"] - }, + "customConditions": ["electron-renderer"], "plugins": [{ "name": "typescript-strict-plugin", "paths": ["."] }] }, "references": [ diff --git a/packages/desktop-client/vite.config.ts b/packages/desktop-client/vite.config.ts index 890790a3d4..20414c3eee 100644 --- a/packages/desktop-client/vite.config.ts +++ b/packages/desktop-client/vite.config.ts @@ -185,13 +185,8 @@ export default defineConfig(async ({ mode }) => { }, resolve: { extensions: resolveExtensions, - alias: { - '@desktop-client': path.join(__dirname, 'src'), - // TODO: remove this once all loot-core imports are replaced with @actual-app/core - 'loot-core': path.join(__dirname, '../loot-core/src'), - }, ...(!env.IS_GENERIC_BROWSER && { - conditions: ['electron', 'module', 'browser', 'default'], + conditions: ['electron-renderer', 'module', 'browser', 'default'], }), tsconfigPaths: true, }, diff --git a/packages/desktop-electron/index.ts b/packages/desktop-electron/index.ts index c71dba9852..987cb26419 100644 --- a/packages/desktop-electron/index.ts +++ b/packages/desktop-electron/index.ts @@ -3,6 +3,7 @@ import { createServer } from 'http'; import type { Server } from 'http'; import path from 'path'; +import type { GlobalPrefsJson } from '@actual-app/core/types/prefs'; import { app, BrowserWindow, @@ -25,8 +26,6 @@ import type { import { copy, exists, mkdir, remove } from 'fs-extra'; import promiseRetry from 'promise-retry'; -import type { GlobalPrefsJson } from '@actual-app/core/types/prefs'; - import { getMenu } from './menu'; import { get as getWindowState, diff --git a/packages/loot-core/package.json b/packages/loot-core/package.json index 7d6d80bd47..7696b877f7 100644 --- a/packages/loot-core/package.json +++ b/packages/loot-core/package.json @@ -42,7 +42,7 @@ "default": "./src/platform/server/sqlite/index.ts" }, "#platform/client/connection": { - "electron": "./src/platform/client/connection/index.ts", + "electron-renderer": "./src/platform/client/connection/index.ts", "default": "./src/platform/client/connection/index.browser.ts" }, "#server/encryption/encryption-internals": { @@ -101,7 +101,7 @@ "./client/undo": "./src/client/undo.ts", "./mocks": "./src/mocks/index.ts", "./platform/client/connection": { - "electron": "./src/platform/client/connection/index.ts", + "electron-renderer": "./src/platform/client/connection/index.ts", "default": "./src/platform/client/connection/index.browser.ts" }, "./platform/client/undo": "./src/platform/client/undo/index.ts", diff --git a/packages/loot-core/vite.desktop.config.ts b/packages/loot-core/vite.desktop.config.ts index b8cf37d3c6..d21ac52b24 100644 --- a/packages/loot-core/vite.desktop.config.ts +++ b/packages/loot-core/vite.desktop.config.ts @@ -34,16 +34,7 @@ export default defineConfig(({ mode }) => { }, resolve: { conditions: ['electron'], - extensions: [ - '.electron.js', - '.electron.ts', - '.electron.tsx', - '.js', - '.ts', - '.tsx', - '.json', - '.pegjs', - ], + extensions: ['.js', '.ts', '.tsx', '.json', '.pegjs'], alias: [ { find: 'handlebars', diff --git a/upcoming-release-notes/7446.md b/upcoming-release-notes/7446.md new file mode 100644 index 0000000000..01662f9315 --- /dev/null +++ b/upcoming-release-notes/7446.md @@ -0,0 +1,6 @@ +--- +category: Maintenance +authors: [MatissJanis] +--- + +Standardise module imports in desktop-client