Compare commits

..

58 Commits

Author SHA1 Message Date
Julian Dominguez-Schatz
95a931a014 Empty commit to bump ci 2025-08-25 00:39:00 -04:00
Julian Dominguez-Schatz
8f9c27b447 Merge branch 'master' into jfdoming/08-21-auto-focus-on-navigate-in-all-browsers 2025-08-23 14:13:15 -04:00
Michael Süssemilch
48ae371ecc fix: crash on filtering by amount (#5608)
* fix: crash on filtering by amount

* doc: add release notes
2025-08-23 10:55:22 +01:00
Matiss Janis Aboltins
e8d93fb797 Implement responsive DateSelect component for mobile view (#5607) 2025-08-22 22:13:16 +01:00
Joel Jeremy Marquez
6790f99de2 [Mobile] Show uncategorized/overspending totals on budget banners (#5605)
* [Mobile] Show uncategorized/overspending totals on budget banners

* Cleanup

* Update VRT

* Coderabbit feedback

* Remove console.log

* Rename release notes

* Use Array.from

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 21:26:55 -07:00
Joel Jeremy Marquez
68f0b05aed [Redux] Rename queriesSlice to transactionsSlice (#5598)
* Move getAccountsById to accountsSlice

* [autofix.ci] apply automated fixes

* [Redux] Rename queriesSlice to transactionsSlice

* Fix import

* Release notes

* Remove nonexistent saved state

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-21 18:16:43 -07:00
Joel Jeremy Marquez
c954d3924e [Redux] Move tags states from queriesSlice to tagsSlice (#5597)
* Update packages/desktop-client/src/queries/queriesSlice.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* [autofix.ci] apply automated fixes

* Move getAccountsById to accountsSlice

* [autofix.ci] apply automated fixes

* [Redux] Move tags states from queriesSlice to tagsSlice

* Fix lint + release notes

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-21 15:31:06 -07:00
Joel Jeremy Marquez
adf4bd2d0f Enable Make Transfer menu for child transactions (#5604) 2025-08-21 15:24:16 -07:00
Matiss Janis Aboltins
102c6eaff6 Enhance responsiveness of GenericInput in RuleEditor component for mobile devices (#5601)
* Enhance responsiveness of GenericInput in RuleEditor component for mobile devices

* Refactor ActionEditor layout in RuleEditor component for improved responsiveness

- Adjusted styles for the View components to enhance layout flexibility.
- Ensured the GenericInput component maintains appropriate minimum width based on method type.
- Updated Stack component to prevent shrinking, improving overall UI consistency.
2025-08-21 22:17:17 +01:00
Joel Jeremy Marquez
21105fc25b [Redux] Move category states from queriesSlice to budgetSlice (#5593)
* Update packages/desktop-client/src/queries/queriesSlice.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* [autofix.ci] apply automated fixes

* Move getAccountsById to accountsSlice

* [autofix.ci] apply automated fixes

* Fix merge error

* [autofix.ci] apply automated fixes

* [Redux] Move category states from queriesSlice to budgetSlice

* Move getCategoriesById to budgetSlice + fix lint

* Fix lint

* [autofix.ci] apply automated fixes

* Fix typecheck

* Add new slices to boundActions

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-21 14:15:30 -07:00
Matiss Janis Aboltins
c69142f58e Refactor schedule handling in ManageRules component (#5600)
- Updated the ManageRules component to use ScheduleEntity type for schedules.
- Improved the describeSchedule function to include type annotations for better clarity.
- Added a conditional check to handle cases where the schedule may not exist, ensuring robust functionality.
2025-08-21 20:09:21 +01:00
Matiss Janis Aboltins
fe32bf14c6 Mobile rules - update default stage to be "default" instead of "pre" (#5587) 2025-08-21 19:24:52 +01:00
Joel Jeremy Marquez
92e43bc3b5 [Redux] Move payee states from queriesSlice to payeesSlice (#5592)
* Update packages/desktop-client/src/queries/queriesSlice.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* [autofix.ci] apply automated fixes

* Move getAccountsById to accountsSlice

* [autofix.ci] apply automated fixes

* [Redux] Move payee states from queriesSlice to payeesSlice

* Fix merge error

* Fix merge error

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* Fix import

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-21 08:51:38 -07:00
Joel Jeremy Marquez
165be3d0df [Redux] Move account states from queriesSlice to accountsSlice (#5581)
* Add rejected reducers

* Add dirty states

* Update packages/desktop-client/src/queries/queriesSlice.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* [autofix.ci] apply automated fixes

* [Redux] Move account states from queriesSlice to accountsSlice

* Release notes

* Move getAccountsById to accountsSlice

* [autofix.ci] apply automated fixes

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-21 08:16:22 -07:00
youngcw
3dd22994b7 fix bug (#5594) 2025-08-21 07:56:09 -07:00
Julian Dominguez-Schatz
ff7fb9544b Auto-focus on navigate in all browsers 2025-08-21 10:09:13 -04:00
Michael Clark
96bfc69332 Command bar VRTs (#5591)
* command bar vrts

* release notes

* reduce flakiness

* oh

* add screenshots back in

* Update VRT

* trigger

* reducing screenshots

* Update VRT

* trigger

* jeez

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-21 09:08:46 +01:00
Joel Jeremy Marquez
284fc13161 [Mobile] Do not show transfer transactions on uncategorized transactions view/page (#5589)
* [Mobile] Do not show transfer transactions on uncategorized transactions view/page

* [autofix.ci] apply automated fixes

* Rename

* Add release notes for PR #5589

* Change release notes to bugfix

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 14:09:53 -07:00
Matiss Janis Aboltins
30102b1474 Revert "Dispatch github ci jobs after running update-vrt workflow (#5586)" (#5590)
This reverts commit 3a8eb96d76.
2025-08-20 21:28:27 +01:00
Matiss Janis Aboltins
3a8eb96d76 Dispatch github ci jobs after running update-vrt workflow (#5586)
* Enhance CI workflows to support repository dispatch events and improve branch handling

- Added support for `repository_dispatch` events in build, check, and codeql workflows.
- Updated concurrency group to include `client_payload.pr_number` for better context.
- Modified checkout steps to reference the correct branch from `client_payload` if available.

* Add release notes for PR #5586

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-20 21:12:16 +01:00
Joel Jeremy Marquez
91a8bc3ef1 Prevent unnecessary calls to DB if same redux action is already pending (#5579)
* Prevent unnecessary calls to DB if same redux action is already pending

* [autofix.ci] apply automated fixes

* Release notes

* Add rejected reducers

* Add dirty states

* Remove commented code

* Update packages/desktop-client/src/queries/queriesSlice.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update packages/desktop-client/src/queries/queriesSlice.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update packages/desktop-client/src/queries/queriesSlice.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update packages/desktop-client/src/queries/queriesSlice.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Update packages/desktop-client/src/queries/queriesSlice.ts

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* [autofix.ci] apply automated fixes

* Coderabbit feedback

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-08-19 19:42:15 -07:00
Julian Dominguez-Schatz
dc2ab4843f Connect automations UI to backend (#5533)
* Connect automations UI to backend

* Fix integer -> amount

* Add release notes

* Fix length check

* No layout shift

* Coderabbit: decimal places
2025-08-19 20:30:09 -04:00
Matt Fiddaman
89e5676cfb only show schedule name in notes for upcoming transactions (#5580) 2025-08-19 19:06:27 -04:00
POGMAN
645342d47d Compute color of tags text for dark mode (#5574) 2025-08-19 10:16:45 -07:00
Julian
116c695964 fix filter transactions by closed account transfer payee (#5438)
* fix filter transactions by closed account transfer payee

* apply equivalent ignore pattern to arguments as variables in eslint

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-19 08:14:40 -07:00
Joel Jeremy Marquez
a5d18929c8 Fix AutoTextSize warnings (#5576)
* Fix AutoTextSize warnings

* Release notes
2025-08-19 08:14:21 -07:00
Matt Fiddaman
989d332e1b fix rerender loop in calendar card (#5573) 2025-08-18 11:19:45 -04:00
Michael Clark
169d08e721 🗑️ Remove old sourcemap and process package (#5567)
* remove old sourcemap package and process package

* release notes

* Update 5567.md
2025-08-18 08:54:44 +01:00
milanalexandre
a74da11904 translate import transactions (#5565)
* translate import transactions

* translate import transactions headers

* add relese note

* feed back

Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>

---------

Co-authored-by: Alex <Alex>
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
2025-08-17 07:39:55 -07:00
Michael Clark
cccd66713d 🗑️ Remove unused package (reselect) (#5566)
* remove unused package

* release notes
2025-08-16 21:04:41 +01:00
Matiss Janis Aboltins
1ce53b2762 feat(mobile): ability to delete rules (#5556) 2025-08-16 17:56:22 +01:00
milanalexandre
d75f984186 Translate closing account and more (#5549)
* translate

* add relese note

* Update VRT

* feed back

* Update VRT

* revert vrt

* avoid duplicate translations

* translate rename save butons (reports custom)

---------

Co-authored-by: Alex <Alex>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-08-15 18:06:38 -07:00
Matiss Janis Aboltins
692ade7254 Extract mobile rules form to a new page (#5516) 2025-08-14 21:52:47 +01:00
dependabot[bot]
da0ac0b144 Bump tmp from 0.2.1 to 0.2.5 (#5551)
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.1 to 0.2.5.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.1...v0.2.5)

---
updated-dependencies:
- dependency-name: tmp
  dependency-version: 0.2.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-13 22:07:53 +01:00
Michael Clark
be20f65b6e 🛠️ Moving loot-core to Vite (#5379)
* Moving loot core to Vite
2025-08-13 20:49:48 +01:00
Joel Jeremy Marquez
1067e32028 [Mobile] Fix preview transactions not loading in multi-account views and uncategorized splits not loading (#5072)
* Fix preview transactions not loading in multi-account views and uncategorized splits not loading

* Update release notes

* Fix typecheck error

* Coderabbit feedback

* Fix lint error

* Fix banners

* Fix uncategorized view to use new route

* Updates

* Update VRT

* Dummy commit

* Fix lint

* [autofix.ci] apply automated fixes

* Update loading

* Coderabbit feedback

* [autofix.ci] apply automated fixes

* Delete old snapshots

* Translate Closed

* Update Closed translation

* Update translation

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>

* [autofix.ci] apply automated fixes

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-08-13 11:05:05 -07:00
Johannes Maas
dcb1c69e67 Display absolute date of reconciliation (#5521) 2025-08-13 13:47:27 -04:00
Matiss Janis Aboltins
f084e28086 Added CODEOWNERS file (#5544) 2025-08-12 22:10:10 +01:00
Joel Jeremy Marquez
f54e459e03 Fix transaction hooks and improve transactions loading experience in mobile (#5415)
* Fix transaction hooks and improve transactions loading experience in mobile

* Allow skipping of running balance calculation on preview transactions + recalculate running balances if there are any inversed transaction amounts

* [autofix.ci] apply automated fixes

* Disable PullToRefresh when transaction list is in loading state (See #5080)

* Cleanup

* Add calculateRunningBalancesTopDown to calculate top down from starting balance

* update balance sheet value

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-12 13:57:17 -07:00
Matiss Janis Aboltins
ccdde60bfe TypeScript: convert edit rules modal (#5543) 2025-08-12 21:41:13 +01:00
Michael Süssemilch
712d315229 fix: hidden category selection and include hidden when they are shown on budget (#5526)
* fix: hidden category selection

* chore: add (hidden) to hidden categories and groups

* feat: add hidden category to filter

* feat: show hidden categories in mobile

* refactor: remove unused variable
2025-08-12 12:57:54 -07:00
milanalexandre
31c6362307 Fix SpendingCard crash (#5541) 2025-08-12 09:51:10 -04:00
CyberSardinha
d1519993d6 Add gocardless support for Stadtsparkasse München (#5383)
* Add files via upload

* added credits to the original author Nebukadneza

* [autofix.ci] apply automated fixes

* Create 5383.md

* Improve Stadtsparkasse München GoCardless transaction parsing

* Improve Stadtsparkasse München GoCardless transaction parsing

* Update 5383.md

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-12 01:18:55 -04:00
Julian Dominguez-Schatz
ebde78434a Add backend logic to support automations UI (#5532)
* Add backend logic to support automations UI

* Fix tests

* Add release notes

* PR feedback: default priority

* PR feedback: template_settings

* PR feedback: batch

* PR feedback: no remainder special-casing

* Simplify SQL

* Fix tests

* Coderabbit

* Schema default
2025-08-11 23:39:09 -04:00
Matiss Janis Aboltins
8fcaff8e3a Fix display of link schedules condition (#5529) 2025-08-09 16:34:02 +01:00
dependabot[bot]
13bc99738f Bump tmp from 0.2.1 to 0.2.4 (#5504)
Bumps [tmp](https://github.com/raszi/node-tmp) from 0.2.1 to 0.2.4.
- [Changelog](https://github.com/raszi/node-tmp/blob/master/CHANGELOG.md)
- [Commits](https://github.com/raszi/node-tmp/compare/v0.2.1...v0.2.4)

---
updated-dependencies:
- dependency-name: tmp
  dependency-version: 0.2.4
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-08-09 01:39:06 -04:00
Junyuan Zheng
959824d317 [BUG] Fix incorrect mathematic calculation in reconcile window (#5528)
* [Bug 5527] Fix incorrect mathmatic equation in resoncile window

* fix linter

* update

* add note

* [autofix.ci] apply automated fixes

* fix linter

* fix linter & type

* fix typing error

* fix lint and typing

* add test

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-09 01:26:06 -04:00
ShayanAraghi
2abc144b03 Add fix for unfocusing the date disabling all other buttons (#5519)
* Add fix for unfocusing the date disabling all other buttons

* Add Release notes
2025-08-08 11:41:12 -07:00
dgliwka
71250f5fb7 [WIP] add Polish Złoty currency (#5472)
* add Polish Złoty currency

* Add release note

* Add Polish Złoty currency

* Delete upcoming-release-notes/5672.md
2025-08-08 09:40:52 -07:00
Michael Süssemilch
c5f050f6f8 fix: negative numbers in summary report (#5520)
* fix: negative numbers in summary report

* doc: add release notes
2025-08-08 12:32:48 -04:00
r1ch
0d46e221f9 Fix missing space on MergeUnusedPayeesModal (#5523)
* Missing space MergeUnusedPayeesModal.tsx

Create PR branch

* Create 5523.md

* [autofix.ci] apply automated fixes

* Update MergeUnusedPayeesModal.tsx

* Add parent

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2025-08-08 09:31:55 -07:00
Matiss Janis Aboltins
6bf2f581a3 Extracted rule editor outside of the modal and into its own component (#5518) 2025-08-07 22:38:44 +01:00
POGMAN
3c34603111 Add 'Prior year to date' time range (#5419)
* add 'Last year to date' time range

* Rename 'Last YTD' to 'Prior YTD'

* Day accurate prevYear for Prior YTD

* Update VRT
2025-08-07 13:31:12 -07:00
milanalexandre
3e488ae8f7 Fix translate payees page (#5514)
* Payees page

* edit rule

format

* add relese note

* feed back

---------

Co-authored-by: Alex <Alex>
2025-08-07 15:51:25 -04:00
Emil George
bacf3091b6 [4036] - Fix Payee Name Overflow (#5489)
* fix: update payee name overflow styles

* chore: add release note

* fix: use text one line component
2025-08-07 10:16:05 -07:00
Emil George
ac77c0f360 Add Indian Rupee (INR) Currency (#5483) 2025-08-07 11:49:21 -04:00
r1ch
e21256e7a2 [WIP] Fix display of old payee name in MergeUnusedPayees modal (#5485) 2025-08-07 09:35:16 -04:00
Joel Jeremy Marquez
22237d11ca Add Philippine Peso currency (#5507) 2025-08-06 17:39:49 -07:00
385 changed files with 7606 additions and 5208 deletions

View File

@@ -0,0 +1,12 @@
---
alwaysApply: true
---
When running yarn commands - always run them in the root directory. Do not run them in child workspaces.
The following commands can be useful:
- `yarn typecheck` to run typechecker
- `yarn lint` to run the code linter and formatter
- `yarn lint:fix` to fix some of the code lint issues (running this is preferred over `yarn lint`)
- `yarn test` to run all the tests

View File

@@ -1,24 +0,0 @@
---
description:
globs:
alwaysApply: true
---
Before pushing code changes or opening a pull request, follow these steps:
1. Check if your branch already has a changelog file in the "upcoming-release-notes" folder.
2. If there is no changelog file for your branch:
a. Find the number of the most recent (highest-numbered) open issue or pull request on GitHub.
b. Increment that number by 1. Use this as the filename for your new changelog file.
c. Create a new markdown file in the "upcoming-release-notes" folder with the following format:
```
---
category: Features OR Maintenance OR Enhancements OR Bugfix
authors: [$GithubUsername]
---
$Description
```
3. Commit the new changelog file.
4. Proceed with your push or pull request.

View File

@@ -30,3 +30,7 @@ Syntax and Formatting
- Use the "function" keyword for pure functions.
- Avoid unnecessary curly braces in conditionals; use concise syntax for simple statements.
- Use declarative JSX, keeping JSX minimal and readable.
Change validation
- Run `yarn typecheck` in the root directory to validate that the generated TypeScript code is correct

View File

@@ -81,7 +81,7 @@ jobs:
base-stats-json-path: ./base/web-stats.json
title: desktop-client
- uses: github/webpack-bundlesize-compare-action@v2.1.0
- uses: twk3/rollup-size-compare-action@v1.1.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
current-stats-json-path: ./head/loot-core-stats.json

View File

@@ -7,6 +7,8 @@ packages/api/migrations
packages/crdt/dist
packages/component-library/src/icons/**/*
packages/desktop-client/bundle.browser.js
packages/desktop-client/stats.json
packages/desktop-client/.swc/
packages/desktop-client/build/
packages/desktop-client/locale/
packages/desktop-client/build-electron/
@@ -23,5 +25,6 @@ packages/desktop-electron/dist/
packages/loot-core/**/node_modules/*
packages/loot-core/**/lib-dist/*
packages/loot-core/**/proto/*
packages/sync-server/coverage/
.yarn/*
upcoming-release-notes/*

10
CODEOWNERS Normal file
View File

@@ -0,0 +1,10 @@
# CODEOWNERS file for Actual Budget
# Please add your name to code-paths that you feel especially
# passionate about. You will be notified for any PRs there.
/packages/api/ @MatissJanis
/packages/component-library/ @MatissJanis
/packages/desktop-client/src/components/mobile @joel-jeremy
/packages/desktop-electron/ @MikesGlitch
/packages/loot-core/src/server/budget @youngcw
/packages/sync-server/ @matt-fidd

View File

@@ -457,6 +457,7 @@ export default pluginTypescript.config(
'warn',
{
varsIgnorePattern: '^(_|React)',
argsIgnorePattern: '^(_|React)',
ignoreRestSiblings: true,
caughtErrors: 'none',
},

View File

@@ -41,6 +41,7 @@
"test:debug": "yarn workspaces foreach --all --verbose run test",
"e2e": "yarn workspaces foreach --all --exclude desktop-electron --parallel --verbose run e2e",
"e2e:desktop": "yarn build:desktop --skip-exe-build && yarn workspace desktop-electron e2e",
"playwright": "yarn workspace @actual-app/web run playwright",
"vrt": "yarn workspaces foreach --all --parallel --verbose run vrt",
"vrt:docker": "./bin/run-vrt",
"rebuild-electron": "./node_modules/.bin/electron-rebuild -f -m ./packages/loot-core",

View File

@@ -23,7 +23,11 @@ export const View = forwardRef<HTMLDivElement, ViewProps>((props, ref) => {
{...restProps}
ref={innerRef ?? ref}
style={nativeStyle}
className={cx('view', className, css(style))}
className={cx(
'view',
className,
style && Object.keys(style).length > 0 ? css(style) : undefined,
)}
/>
);
});

View File

@@ -1,4 +1,6 @@
import * as SyncPb from './proto/sync_pb';
/* eslint-disable @typescript-eslint/no-explicit-any */
import './proto/sync_pb.js'; // Import for side effects
export {
merkle,
getClock,
@@ -11,4 +13,11 @@ export {
Timestamp,
} from './crdt';
export const SyncProtoBuf = SyncPb;
// Access global proto namespace
export const SyncRequest = (globalThis as any).proto.SyncRequest;
export const SyncResponse = (globalThis as any).proto.SyncResponse;
export const Message = (globalThis as any).proto.Message;
export const MessageEnvelope = (globalThis as any).proto.MessageEnvelope;
export const EncryptedData = (globalThis as any).proto.EncryptedData;
export const SyncProtoBuf = (globalThis as any).proto;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 30 KiB

View File

@@ -0,0 +1,77 @@
import { type Page } from '@playwright/test';
import { expect, test } from './fixtures';
import { ConfigurationPage } from './page-models/configuration-page';
test.describe('Command bar', () => {
let page: Page;
let configurationPage: ConfigurationPage;
test.beforeAll(async ({ browser }) => {
page = await browser.newPage();
configurationPage = new ConfigurationPage(page);
await page.goto('/');
await configurationPage.createTestFile();
// Move mouse to corner of the screen;
// sometimes the mouse hovers on a budget element thus rendering an input box
// and this breaks screenshot tests
await page.mouse.move(0, 0);
// ensure page is loaded
await expect(page.getByTestId('budget-table')).toBeVisible();
await expect(page.getByRole('button', { name: 'Add group' })).toBeVisible({
timeout: 10000,
});
});
test.afterAll(async () => {
await page.close();
});
test('Check the command bar visuals', async () => {
// Open the command bar
await page.keyboard.press('ControlOrMeta+k');
const commandBar = page.getByRole('combobox', {
name: 'Command Bar',
});
await expect(commandBar).toBeVisible();
await expect(page).toMatchThemeScreenshots();
// Close the command bar
await page.keyboard.press('Escape');
await expect(commandBar).not.toBeVisible();
});
test('Check the command bar search works correctly', async () => {
await page.keyboard.press('ControlOrMeta+k');
const commandBar = page.getByRole('combobox', {
name: 'Command Bar',
});
await expect(commandBar).toBeVisible();
await expect(commandBar).toHaveValue('');
// Search and navigate to reports
await commandBar.fill('reports');
await page.keyboard.press('Enter');
await expect(page.getByTestId('reports-page')).toBeVisible();
await expect(page.getByText('Loading reports...')).not.toBeVisible(); // wait for screen to load
// Navigate to schedule page
await page.keyboard.press('ControlOrMeta+k');
await page.keyboard.press('ArrowDown');
await page.keyboard.press('ArrowDown'); // Select second suggestion - Schedules
await expect(page).toMatchThemeScreenshots();
await page.keyboard.press('Enter');
await expect(
page.getByRole('button', {
name: 'Add new schedule',
}),
).toBeVisible();
});
});

View File

@@ -6,6 +6,7 @@ export class MobileTransactionEntryPage {
readonly page: Page;
readonly header: Locator;
readonly amountField: Locator;
readonly globalAmountField: Locator;
readonly transactionForm: Locator;
readonly footer: Locator;
readonly addTransactionButton: Locator;
@@ -15,6 +16,7 @@ export class MobileTransactionEntryPage {
this.header = page.getByRole('heading');
this.transactionForm = page.getByTestId('transaction-form');
this.amountField = this.transactionForm.getByTestId('amount-input');
this.globalAmountField = page.getByTestId('navigable-focus-input');
this.footer = page.getByTestId('transaction-form-footer');
this.addTransactionButton = this.footer.getByRole('button', {
name: 'Add transaction',

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

After

Width:  |  Height:  |  Size: 65 KiB

Some files were not shown because too many files have changed in this diff Show More