Commit Graph

28 Commits

Author SHA1 Message Date
Matiss Janis Aboltins
0472211925 [AI] lint: await-thenable, no-floating-promises (#6987)
* [AI] Desktop client, E2E, loot-core, sync-server and tooling updates

Co-authored-by: Cursor <cursoragent@cursor.com>

* Refactor database handling in various modules to use async/await for improved readability and error handling. This includes updates to database opening and closing methods across multiple files, ensuring consistent asynchronous behavior. Additionally, minor adjustments were made to encryption functions to support async operations.

* Refactor sync migration tests to utilize async/await for improved readability. Updated transaction handling to streamline event expectations and cleanup process.

* Refactor various functions to utilize async/await for improved readability and error handling. Updated service stopping, encryption, and file upload/download methods to ensure consistent asynchronous behavior across the application.

* Refactor BudgetFileSelection component to use async/await for onSelect method, enhancing error handling and readability. Update merge tests to utilize async/await for improved clarity in transaction merging expectations.

* Refactor filesystem module to use async/await for init function and related database operations, enhancing error handling and consistency across file interactions. Updated tests to reflect asynchronous behavior in database operations and file writing.

* Fix typo in init function declaration to ensure it returns a Promise<void> instead of Proise<void>.

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6987

* Update tests to use async/await for init function in web filesystem, ensuring consistent asynchronous behavior in database operations.

* Update VRT screenshot for payees filter test to reflect recent changes

* [AI] Fix no-floating-promises lint error in desktop-electron

Wrapped queuedClientWinLogs.map() with Promise.all and void operator to properly handle the array of promises for executing queued logs.

Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com>

* Refactor promise handling in global and sync event handlers

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6987

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <MatissJanis@users.noreply.github.com>
2026-02-19 14:22:05 +00:00
Matiss Janis Aboltins
84cebed20b Enforce consistent TypeScript type import style (#6805) 2026-02-10 13:33:20 +00:00
Copilot
b50d48a31a Fix sidebar link highlighting for nested routes (#6669)
* Initial plan

* Add release notes for PR #6669

* Fix Reports link highlighting in sidebar for nested routes

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Simplify by hardcoding end={false} in InternalLink

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6669

* Fix All accounts link to use exact matching

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6669

* Merge master and accept incoming screenshot changes

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Remove screenshot changes from current branch

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Revert all remaining screenshots to master versions

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Rename 'end' prop to 'isExactPathMatch' for clarity

Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6669

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: MatissJanis <886567+MatissJanis@users.noreply.github.com>
Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
2026-01-18 18:11:07 +00:00
Matiss Janis Aboltins
b6452f930b lint: add perfectionist/sort-named-imports rule (#6680)
* Apply import sorting with perfectionist/sort-named-imports rule

- Add perfectionist/sort-named-imports oxlint rule
- Sort named imports: value imports before type imports
- Update component-library and desktop-client files to match new rule

* Add release notes for linting updates on named imports
2026-01-16 23:41:45 +00:00
Matiss Janis Aboltins
d01d0eacb8 Add custom themes installation feature (#6612)
* Add custom themes feature with GitHub installation support

- Add ThemeInstaller component for installing themes from GitHub
- Implement custom theme validation and CSS parsing
- Add support for installed custom themes in preferences
- Add CustomThemeStyle component with CSS validation
- Update theme system to support custom overlay backgrounds
- Add comprehensive tests for theme installation and validation
- Add documentation and release notes for custom themes feature

* Update custom theme catalog: remove several themes and add 'Miami Beach' from a new repository.

* Enhance CSS validation in custom themes

- Refactor `validatePropertyValue` to implement an allowlist approach for CSS property values, rejecting complex constructs and functions except for rgb/rgba/hsl/hsla.
- Add comprehensive tests for various invalid CSS scenarios, including function calls and at-rules.
- Improve error messages for better clarity on validation failures.
- Ensure property name validation checks for format and allowed characters.

* Update custom theme catalog: rename theme from 'Miami Beach' to 'Shades of Coffee'.

* Remove 'forceReload' feature flag and related code from the application settings and feature flag definitions.

* Enhance ThemeInstaller component to support installed themes

- Add `installedTheme` prop to `ThemeInstaller` for managing custom themes.
- Implement logic to populate the text box with installed custom theme CSS when reopening.
- Update tests to verify behavior for installed themes with and without repositories.
- Improve CSS validation to allow additional CSS keywords and ensure proper structure.
2026-01-15 18:04:35 +00:00
Matiss Janis Aboltins
f1faf45659 lint: move last remaining native eslint rules to oxlint (create new alternatives) (#6468)
* lint: clean up unnecessary config and disables

* fix: update package import path in browser preload script

* lint: create custom ESLint rules for rules not in oxlint

- Add object-shorthand-properties rule (replaces object-shorthand)
- Add prefer-const rule (replaces prefer-const)
- Add no-anchor-tag rule (replaces no-restricted-syntax for <a> tags)
- Add no-react-default-import rule (replaces no-restricted-syntax for React.*)

These custom rules are needed because oxlint doesn't support these rules yet.
All rules are properly tested and integrated into the ESLint config.

* refactor: enhance prefer-const rule to track variable reassignments by scope

- Introduced a mapping of scopes to reassigned variable names, improving the accuracy of the prefer-const rule.
- Added helper functions to determine variable scopes and reassignment status.
- Updated logic to check variable reassignments during declaration analysis.
- Adjusted test cases to reflect changes in variable handling.
2026-01-05 09:00:44 +00:00
Matiss Janis Aboltins
d9a1260c91 lint: actual/typography disallow using curly quotes (#6454)
* Update typography rule to disallow curly quotes with auto-fix

- Reverse typography rule to detect and flag curly quotes instead of straight quotes
- Add auto-fixer that converts curly quotes to straight quotes
- Fix auto-fixer to properly escape quotes when they match string delimiters

* Fix quotation marks in error messages and formatting strings across multiple files

- Standardize quotation marks from curly to straight in error messages and string formatting for consistency.
- Update various components and utility files to ensure proper string handling and improve readability.

* Standardize quotation marks across multiple files

- Replace curly quotes with straight quotes in various documentation and code files for consistency and improved readability.
- Update error messages, comments, and documentation to ensure uniformity in string formatting.

* Standardize month formatting across multiple components

- Update month formatting strings from "MMMM 'yy" to "MMMM ''yy" in various components and utility files for consistency.
- Ensure uniformity in how months are displayed throughout the application.

* Refactor typography rule to enhance curly quote handling

- Simplify the error reporting mechanism for curly quotes by creating a shared fix function.
- Update test cases to include various curly quote scenarios for improved coverage.
- Ensure consistent handling of curly quotes in formatting functions across multiple files.

* Refactor typography handling and update tests for curly quotes

- Replace curly quotes with their Unicode equivalents in typography rule and related test cases for consistency.
- Remove unnecessary eslint-disable comments to improve code clarity.
- Ensure proper handling of quotes in arithmetic and utility tests to align with updated typography standards.

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6454

* Fix: Correct typo in budget cell notification message

Co-authored-by: matiss <matiss@mja.lv>

* Update VRT screenshots

Auto-generated by VRT workflow

PR: #6454

* Temporarily disable i18n string extraction workflow

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2025-12-20 19:51:16 +00:00
Matiss Janis Aboltins
d130b427b3 Upgrade react router to v7 (#5172) 2025-06-16 18:23:26 +01:00
Joel Jeremy Marquez
cc204ba70e Use @desktop-client/hooks alias for cleaner imports (#4789)
* Use @hooks path alias for cleaner imports

* Fix line errors

* Update to @desktop-client
2025-05-04 22:30:10 -07:00
Matiss Janis Aboltins
6c7df7c1f9 ♻️ (components) updated old import paths to use the new paths (#4591) 2025-03-10 18:11:30 +00:00
Alberto Cortina Eduarte
1884a188b7 Remove deprecated imports for several components (#4385) 2025-02-18 14:57:13 +00:00
Matiss Janis Aboltins
87428a7b65 🔧 (typescript) change moduleResolution to bundler (#4163) 2025-01-16 18:35:22 +00:00
Matiss Janis Aboltins
d5ebcced38 🔥 remove unused report prop from Link component (#4083) 2025-01-07 18:24:49 +00:00
Koen van Staveren
d894281465 enhance: context menu on sidebar elements (#3777)
* enhance: context menu on sidebar account

* enhance: context menu on EditableBudgetName

* chore: release note

* chore: lint

* Update packages/desktop-client/src/components/sidebar/Sidebar.tsx

* chore: fix margin

* fix: merge

* chore: use useContextMenu hook

* style: change account name field an input

* lint

---------

Co-authored-by: matt <matt@fiddaman.net>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2024-12-29 21:13:57 +00:00
Joel Jeremy Marquez
0d9528e22c @emotion/css as drop-in replacement for abandoned glamor library (#3471)
* Migrate to @emotion/css

* Remove custom CSSProperties

* Fix errors

* Fix typecheck error

* Fix lint error

* Fix typecheck error

* Fix typecheck error

* Fix typecheck error

* Release notes

* VRT

* VRT

* Revert VRT

* Fix typecheck error

* Fix glamor import

* yarn

* Fix lint error

* Dedupe

* Fix typecheck error

* Update @emotion/css

* Revert vrt screenshots

* Fix toggle content

* Fix content

* Fix lint error

* VRT

* Cleanup unneeded style
2024-10-17 17:35:53 -07:00
Tim
7e889300ef Add UncategorizedButton to mobile budget view (#3326) 2024-09-25 14:39:24 -07:00
Joel Jeremy Marquez
e507b8ff43 Fix React Aria Button hover styles (#3453)
* Fiox hover styles and use className instead of inline to prepare for future css migration

* Release notes

* Cleanup

* Update edit rule hover style
2024-09-19 16:12:57 -07:00
Joel Jeremy Marquez
3985d2549e [React Aria Button] All remaining components except filters, mobile transaction edit, and autocomplete (#3163)
* vrt

* Fix account menu test

* Fix payee icons and category notes

* vrt

* vrt

* Fix notes button

* VRT

* VRT

* React Aria Button - All except filters and autocomplete

* Release notes

* Fix typecheck errors

* Fix typecheck error

* Fix button links

* Update

* Fix typecheck error

* Fix link button variant

* Fix typecheck error

* Fix typecheck error

* Fix typecheck error

* Fix border

* Fix mobile accounts page

* VRT

* Fix playwright config

* Revert MobileForms and TransactionEdit

* VRT

* Remove borderRadius

* Fix add account button

* VRT

* Revert VRT

* Fix tests

* Fix Cover and Transfer modals

* Fix lint error
2024-09-09 12:53:28 -07:00
Matiss Janis Aboltins
5b0cc63f73 🐛 add missing underline to links (#3143)
* 🐛 add missing underline to links

* Update accounts screenshots
2024-07-27 16:44:14 +01:00
Joel Jeremy Marquez
2d188b3941 [Mobile] Category activity/transactions page (#2531)
* Mobile category transactions

* Release notes

* Fix typo

* Fix typecheck error

* Handle null location state

* VRT

* Fix account search

* Update test

* Search placeholder

* vrt

* Add month to page title

* Cleanup

* Fix AccountName component

* Replace ButtonLink with Link

* Fix typecheck

* Code review update
2024-04-13 11:45:43 -07:00
Neil
d6de90a296 Consolidate Link props (#2558)
* Remove Link Button

* remove AnchorLink

* remove ButtonLink

* notes

* merge fix

* clickLink

* typecheck fix

* remove link option from button

* remove ExternalLink

* VRT
2024-04-07 20:07:42 +01:00
Matiss Janis Aboltins
afaee6bc16 ♻️ (typescript) port some common components to strict TS (#2481) 2024-03-23 09:35:20 +00:00
Matiss Janis Aboltins
f33bce41ea ♻️ (typescript) enable strict mode everywhere (#2230) 2024-01-15 08:24:33 +00:00
Joel Jeremy Marquez
6f8d2574ab ESLint no-default-exports 10 - all desktop-client src folders except icons (#2172)
* ESLint no-default-exports 10 - all desktop-client src folders except icons

* Release notes
2024-01-06 12:57:45 -08:00
Joel Jeremy Marquez
882fd9f5cd ESLint no-default-exports 3 (#2117)
* ESLint no default exports - part 3

* Fix default imports

* Release notes

* Fix Menu
2024-01-06 10:57:19 -08:00
Joel Jeremy Marquez
4d7cfab8bc ESLint no-default-exports 2 - Button.tsx (#2116)
* ESLint no default imports - Button

* Fix

* Release notes

* Fix Button imports
2024-01-06 09:32:06 -08:00
Joel Jeremy Marquez
e266093a4a Custom useNavigate which tracks previous location (#1808)
* Custom useNavigate which tracks previous location

* Release notes

* Fix lint errors
2023-10-22 11:41:07 -07:00
Jainam Desai
efb72af1b8 Add common component for AnchorLink and ButtonLink (#1701) 2023-09-20 17:19:09 +01:00