Compare commits

...

82 Commits

Author SHA1 Message Date
CodeRabbit AI
15e4023ced Fix SQL injection vulnerability in cleanup-template.ts 2025-03-10 15:36:37 -07:00
Joel Jeremy Marquez
4b48f09112 [TypeScript] Make db.all generic to make it easy to type DB query results (#4542)
* [TypeScript] Make db.all generic to make it easy to type DB query results

* Release notes

* Fix type

* Update return type
2025-03-10 12:14:13 -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
Matiss Janis Aboltins
0b9b440a7a ♻️ (components) remove InputWithContent component (#4566) 2025-03-10 17:21:00 +00:00
Matiss Janis Aboltins
ebb83aca51 ♻️ (components) refactor useResponsive and move to comp. lib (#4568) 2025-03-10 15:32:17 +00:00
Joel Jeremy Marquez
e5c2ef47ac [Mobile] Drag and drop income categories to re-order (#4482)
* [Mobile] Drag and drop income categories to re-order

* Fix category group ID

* Update borders

* Use list item value prop

* Cleanup

* useCallback

* Remvoe usage of useListData

* Fix typecheck error

* Release notes

* Fix import

* Update DropIndicator

* Update DropIndicator

* Fix drop indicator
2025-03-10 08:14:33 -07:00
Matiss Janis Aboltins
af068d1f89 🐛 fix rules page table incorrect row heights (#4586) 2025-03-10 12:11:09 +00:00
James Skinner
35fe969b1b Typo fix in OutOfSyncMigrationsModal (#4585)
* Fix typo in OutOfSyncMigrationsModal.tsx

* Add release note

* Rename release note file to be id of PR rather than issue
2025-03-09 22:50:37 +00:00
Matiss Janis Aboltins
cc44fad62e ♻️ (components) rename SimpleTable to InfiniteScrollWrapper and cleanup (#4578) 2025-03-08 23:22:39 +00:00
lelemm
42294d4a53 🐛 Fix for var ACTUAL_OPENID_ENFORCE (#4533)
* Fix for var `ACTUAL_OPENID_ENFORCE`

* md
2025-03-08 13:34:56 -03:00
Joel Jeremy Marquez
d8fcd43324 Upgrade React Aria packages and address deprecated Section component warnings (#4572)
* Update react-aria packages and replace deprecated RAC Section component

* Release notes
2025-03-08 02:18:37 -08:00
Joel Jeremy Marquez
ccb07e12db Delete no longer used deprecated Button component (#4564)
* Delete no longer used deprecated Button component

* Release notes

* Release notes

* Delete upcoming-release-notes/4127.md
2025-03-07 10:15:05 -08:00
Matiss Janis Aboltins
f2267587c8 ♻️ (components) moving Input component to comp. library (#4563) 2025-03-07 16:56:17 +00:00
Joel Jeremy Marquez
4bc34776fb Replace usage of deprecated Button in Autocomplete with new Button component (#4561)
* Replace usage of deprecated Button in Autocomplete with new Button component

* Release notes

* Remove console.log
2025-03-07 08:47:46 -08:00
Joel Jeremy Marquez
63657a8496 Replace usage of deprecated Button component in MobileForms with new Button component (#4559)
* Update mobile forms TapField to use the new Button component

* Release notes

* Fix typecheck error

* Cleanup

* Update VRT

* Dummy commit

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-03-07 08:44:11 -08:00
Joel Jeremy Marquez
b3e82c55f6 [Mobile] Drag and drop on accounts to re-order (#4476)
* Drag and drop on mobile accounts page

* Fix width

* Move account in DB

* Update onReorder

* Use ID as key

* Fix typecheck error

* Rename prop

* Alert for debugging

* Fix retrieval of keys

* Update after logic

* Fix retrieval of nextToTargetAccount

* More debug

* Remove alert

* Cleanup

* Fix typecheck error

* Drop indicator

* Use DropIndicator component

* Update drop indicator style

* Release notes

* Remove useListData

* Upgrade react aria components in case bug fixes were introduced

* Dummy commit

* Updat e react aria packages

* Revert react aria versions

* Update AccountListItem

* Dummy commit

* Pass ListBoxItem render props to child Button

* Update release notes
2025-03-07 07:59:07 -08:00
Matiss Janis Aboltins
9a45d6707d ♻️ (components) moving select component to component library (#4556) 2025-03-07 14:48:30 +00:00
Matiss Janis Aboltins
46138997d1 ♻️ removing 'focused' prop from generic Input component (#4557) 2025-03-07 09:14:18 +00:00
Joel Jeremy Marquez
c19d5a5722 Replace usage of deprecated Button in TransactionEdit with new Button component (#4560)
* Replace usage of deprecated Button in TransactionEdit with new Button component

* Release notes
2025-03-06 19:59:45 -08:00
Joel Jeremy Marquez
c2cb61eb70 [Redux Toolkit Migration] notificationsSlice (#4126)
* Migrate to accountSlice

* Fix lint and typecheck errors

* Update types

* Fix lint

* Fix types

* Cleanup

* Rename file

* Rename state

* Cleanup

* Fix typecheck error

* Move createAppAsyncThunk

* Queries slice

* Budgets slice

* Fix lint errors

* Undo auto removal of import/no-unresolved

* Update index.ts

* Release notes

* Notifications slice

* Update payloads

* Fix addNotification import

* Fix addNotification import

* Fix typecheck error

* Fix build error

* Fix lint and typecheck error

* Coderabbit feedback

* Fix lint error
2025-03-06 19:59:19 -08:00
tempiz
ca5cd55585 Display Goal/Target Information on Mobile (#4546)
* Display Goal/Target Information on Mobile

* Create 4546.md

* Fix lint issues

* change hr and div to View and modified styling

* Fix lint errors again

---------

Co-authored-by: lelemm <lelemm@gmail.com>
2025-03-06 22:53:20 -03:00
Matiss Janis Aboltins
6fd5164987 ♻️ removing usages of MenuButton (#4555) 2025-03-06 18:48:23 +00:00
lelemm
60a864a790 📚 Translate calendar related strings (#4211)
* Translate dates POC

* more dynamic loading of locales

* added locale

* linter

* linter and typecheck

* added md

* translated DateSelect component

* more translations and fixes

* removed redux state for locale

* linter

* typecheck fix

* fix test for schedules.ts

* linter

* fixed System Default language

* loading all locales at once

* added some fallback cases

* bugfix, linter and typecheck

* schedule description rework to have better translation labels

* fixes

* test fix

* Trigger actions

* merge of #4459

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-03-06 15:17:38 -03:00
Matiss Janis Aboltins
c510f722ef ♻️ (components) moving icons to the component lib (#4554) 2025-03-06 18:16:59 +00:00
lelemm
1fed3ebbd7 Memoize external accounts for bank sync (#4540)
* Memoize external accounts

* md
2025-03-05 12:23:08 -03:00
Joel Jeremy Marquez
84e4cda6ad [TypeScript] Make db.firstSync generic to make it easy to type DB query results (#4249)
* [TypeScript] Make db.first generic

* Release notes

* Fix typecheck error

* Cleanup type

* Update db.first calls

* Fix strict type

* [TypeScript] Make db.firstSync generic

* Release notes

* Coderabbit review
2025-03-04 15:00:44 -08:00
Joel Jeremy Marquez
4fb5bbca34 Extract payees related server handlers from main.ts to server/payees/app.ts (#4443)
* Extract payees related server handlers from main.ts to server/payees/app.ts

* Release notes

* Payee model mapping methods

* Re-arrange methods

* Update types

* Remove undoable because there is withUndo already

* Support meta in undoable

* Fix types

* Fix typo on test
2025-03-04 15:00:27 -08:00
lelemm
e0805c125f 🐛 Fix for ACTUAL_PORT and PORT vars (#4537)
* Fix for ACTUAL_PORT and PORT vars

* md
2025-03-04 20:26:45 +00:00
Matt Fiddaman
a2fc6bdd31 Add "payee is nothing" condition to rule if there is no payee set in a schedule (#4267)
* if no payee set in schedule, add payee = nothing to rule

* note
2025-03-04 19:13:00 +00:00
Joel Jeremy Marquez
866f4891ce [TypeScript] More specific types on budget table components (#4524)
* [TypeScript] More specific types on budget table components

* Release notes

* Wrong PR number
2025-03-04 11:00:34 -08:00
Joel Jeremy Marquez
0f7a1e6b97 [Redux Toolkit Migration] modalsSlice (#4119)
* Migrate to accountSlice

* Fix lint and typecheck errors

* Update types

* Fix lint

* Fix types

* Cleanup

* Rename file

* Rename state

* Cleanup

* Fix typecheck error

* Move createAppAsyncThunk

* Queries slice

* Budgets slice

* Fix lint errors

* Undo auto removal of import/no-unresolved

* Update index.ts

* Modal slice

* Use loot-core Modal type in all modals

* Fix typecheck error

* Fix errors

* Remove ModalsState

* Fix typecheck error

* Update payload

* Fix typecheck error

* Update new modals

* Fix typecheck errors

* Fix lint error

* Fix typecheck error

* Fix typecheck error

* Update packages/desktop-client/src/components/modals/PluggyAiInitialiseModal.tsx

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

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-03-04 10:38:33 -08:00
Matt Fiddaman
0b15ba18a0 disable mangling when building (#4532)
* disable mangling

* note
2025-03-04 18:09:08 +00:00
lelemm
cfc8186da1 🐛 Fix config for default data dir (#4535)
* Fix config for default data dir

* md

* Fix for testing

* linter
2025-03-04 18:06:13 +00:00
lelemm
47ad1492dc 🐛 Fix production builds missing convict and pluggy-sdk (#4534)
* Fix production builds

* md
2025-03-04 14:33:44 -03:00
lelemm
90af0466f4 🐛 Fixes for OpenID with the new config (#4530)
* Fixes for openid with the new config

* md
2025-03-04 13:57:18 -03:00
Luke
98e4ece50a Allow marking transactions as Transfers on mobile devices (#4511)
* Extract existing "Make Transfer" functionality

* Add "Make Transfer" functionality to mobile menu

* Don't just blindly allow setting as transfer

* Update disabled colour and missing translations

* Fix import warnings

* Add release note

* Use correct translation function

* Determine whether to show the "Make Transfer" option or not based on the presence of an account

* Build list of menu options nicer

* Fix types

* Fix translations

* Use Trans component instead of t function

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

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-03-04 13:37:58 +00:00
Szymon Romanko
9e82032595 Fixed transaction dates in bank sync with MBANK_RETAIL_BREXPLPW (#4493)
* fixed transaction date for MBANK_RETAIL_BREXPLPW

* cleared up imports after previous commit (9251d3e1)

* added release notes

* linted code

* Update packages/sync-server/src/app-gocardless/banks/mbank_retail_brexplpw.js

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

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-03-04 12:34:01 +00:00
lelemm
abb6e86f35 🐛 Fix on typed select (#4529)
* Fix on typed select

* md

* merge fix

* linter
2025-03-04 09:06:37 -03:00
Matt Fiddaman
c8d14cae09 improve summary report monthly average calculation (#4302) 2025-03-04 11:33:29 +00:00
lelemm
d815a22f6b Refactoring load-config.js (#4440) 2025-03-04 08:15:46 -03:00
lelemm
d5e2030d23 Pluggy.ai bank sync (#4049)
* added Pluggy.ai bank sync

* added md

* code review nits

* small fixes

* fix syncs

* refactory after redux changes

* changed trunc to round

* removed debugger

* linter

* linter again

* sync-server changes

* types

* code review

* typecheck

* fixes

* removed old sync server file

* code review

* added more fields to mapping

* linter

* code review

* Update packages/sync-server/src/app-pluggyai/app-pluggyai.js

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

* code review

---------

Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
2025-03-04 08:07:58 -03:00
Matiss Janis Aboltins
f9b8dde199 🐛 make custom report side nav bar responsive (#4522) 2025-03-04 04:14:45 +00:00
Matt Fiddaman
c17cd28525 Show the last bank sync in plain language instead of timestamp (#4523)
* use relative time strings for last bank sync

* note
2025-03-03 21:58:53 +00:00
Margarida Reis
5ebbff4f87 feat: add "last reconciled" timestamp to accounts (#4459)
* feat: add "last reconciled" timestamp to accounts

add a `last_reconciled` column to the `accounts` table, which stores a UNIX timestamp indicating when each account was last reconciled
upon initial release, all accounts will display "Not yet reconciled"; however, after completing reconciliation and pressing the "Done reconciling" button, the timestamp will be updated accordingly

* test: generate mock accounts with `last_reconciled` as `null`

generate mock accounts with the `last_reconciled` value set to `null`, to match the expected behaviour that new accounts will start with a "Not yet reconciled" status

* improvement: display "last reconciled" timestamp in tooltip

relocate the "last reconciled" timestamp from the account balances header to a tooltip displayed when hovering over the "Reconcile" button
2025-03-03 12:27:57 -07:00
Matt Fiddaman
ca2a930bd5 bump versions to v25.3.1 (#4521)
* bump versions

* remove release notes from patch release
2025-03-03 19:13:29 +00:00
Margarida Reis
7346198360 fix: filtering of transfer transactions (#4519)
fix issue where transactions for transfers between accounts (i.e., transactions where the payee is another account) were not properly filtered during searches
2025-03-03 18:49:50 +00:00
Michael Clark
17c4d168fa 🐛 Fix error modal not showing when in non-secure context (#4499)
* init when not ssl

* bringing it all back

* huh

* race conditions....

* release notes

* remove unneeded console log
2025-03-03 18:47:27 +00:00
Michael Clark
b74175e660 :electron: Copy budget files to succeed even if cleanup fails & adding retries (#4507)
* allowing copy budget files to succeed even if cleanup fails

* release notes

* updating fs-extra

* retries in for removing dir

* better retry defaults

* defaults
2025-03-03 18:46:22 +00:00
youngcw
3628deee95 [Goals] Better processing for by templates (#4486)
* upgrade the by templates

* note

* lint
2025-03-03 09:37:20 -07:00
Matt Fiddaman
7650eed644 increase timeout for SimpleFIN batch sync and add debug logging (#4515)
* increase timeout for SimpleFIN batch sync, add logging

* note

* ensure errors bubble up to the UI
2025-03-03 15:49:10 +00:00
Mahmoud Hanafy
eeeb1d3bcd Ignore user's fly.toml (#4508)
* Ignore user's fly.toml

* Add release notes
2025-03-03 14:17:42 +00:00
Gianluca Trombetta
3863ce369d Fix typo (#4506)
* Fix typo

* Release notes
2025-03-03 10:30:58 +00:00
Julian Dominguez-Schatz
e10b105756 Fix number input on mobile with hidden decimals (#4503)
* Fix number input on mobile with hidden decimals

* Add release notes
2025-03-02 12:18:27 -05:00
Joel Jeremy Marquez
89006275a0 [TypeScript] Make db.first generic to make it easy to type DB query results (#4248)
* [TypeScript] Make db.first generic

* Release notes

* Fix typecheck error

* Cleanup type

* Update db.first calls

* Fix strict type

* Code review

* Fix typo
2025-03-01 09:33:45 -08:00
Joel Jeremy Marquez
b4f423eac0 [Mobile] Add support for searching child transactions (#4471)
* [Mobile] Add support for searching child transactions

* Release notes
2025-02-28 23:31:54 -08:00
Joel Jeremy Marquez
d5f55cee80 Fix react-hooks/exhaustive-deps error on useSheetValue.ts (#4278)
* Fix react-hooks/exhaustive-deps error on useSheetValue.ts

* Release notes

* Add comments

* Fix typecheck error
2025-02-28 23:20:25 -08:00
Joel Jeremy Marquez
fcf110749d [Redux Toolkit Migration] budgetsSlice (#4114)
* Migrate to accountSlice

* Fix lint and typecheck errors

* Update types

* Fix lint

* Fix types

* Cleanup

* Rename file

* Rename state

* Cleanup

* Fix typecheck error

* Move createAppAsyncThunk

* Queries slice

* Budgets slice

* Fix lint errors

* Fix import

* Release notes

* Undo auto removal of import/no-unresolved

* Move backup actions to budgetSlice

* Fix lint error

* Fix loadBudget

* Update index.ts
2025-02-28 22:59:51 -08:00
Matt Fiddaman
6db52ca7a8 fix negative amount parsing (#4489)
* fix negative amount parsing

* note
2025-03-01 03:50:16 +00:00
Th3Heavy
e91f8e7e06 Update bank-factory.js add bank to BANKS_WITH_LIMITED_HISTORY (#4416)
* Update bank-factory.js

add bank  90 days limit history:
INDUSTRIEL_CMCIFRPAXXX
QONTO_QNTOFRP1

* Create 4416

* Rename 4416 to 4416.md
2025-03-01 02:54:54 +00:00
Matt Fiddaman
1425671d16 prevent subsequent builds from failing when fetching translations (#4485)
* bring back deleted files for subsequent builds

* note
2025-03-01 02:49:41 +00:00
Tim
61364fb846 align month picker years to the month text (#4474)
* align month picker years to the month text

* update vrt

* add upcoming-release-notes
2025-02-28 21:23:24 -05:00
Julian Dominguez-Schatz
1a5f83d78c Update transaction repair tool to remove erroneous transaction errors (#4464)
* Update transaction fix tool to remove errors from regular transactions

* Add release notes

* Update 4464.md
2025-02-28 21:21:27 -05:00
github-actions[bot]
b0deedb411 🔖 (25.3.0) (#4478)
* 🔖 (25.3.0)

* Empty commit to bump ci

* Remove used release notes

* Empty commit to bump ci

* Bump sync-server for web release

* Remove used release notes

* Empty commit to bump ci

---------

Co-authored-by: jfdoming <9922514+jfdoming@users.noreply.github.com>
Co-authored-by: Julian Dominguez-Schatz <julian.dominguezschatz@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-02-28 20:19:57 -05:00
Michael Clark
103d95bbc8 🐳 Docker images to be published under the actual repo (#4483)
* docker images to be published to the main repo

* release notes
2025-02-28 19:38:34 -05:00
Julian Dominguez-Schatz
d11fc59ec9 Update bump-package-versions script to handle no input version (#4477) 2025-02-27 19:15:15 -05:00
Matt Fiddaman
1c931cf01c add last bank sync tracking back in (#4472)
* add last sync tracking back in

* note

* type

* db.update
2025-02-27 19:41:24 +00:00
Matt Fiddaman
7f50c73866 fix category group deletion on mobile (#4469)
* fix deleting category groups on mobile

* note
2025-02-27 17:17:07 +00:00
youngcw
a7cde1f90d fix #4445 (#4468)
* change condition

* new message

* fix

* lint
2025-02-27 10:06:08 -07:00
Julian Dominguez-Schatz
398ada0afd Fix crash when deleting child transactions from an errored split (#4465)
* Fix crash when deleting child transactions from an errored split

* Add tests

* Add release notes

* Add graceful fallback

Fallback: don't try to show errors on a transaction if it's not actually
a split.
2025-02-27 09:16:52 -05:00
Julian Dominguez-Schatz
8b928b3b21 Fix missing space in bank sync strings (#4463)
* Fix missing space in string

* Add release notes
2025-02-26 20:17:02 -05:00
Matt Fiddaman
3897a5a51c fix row spacing on bank sync page (#4458)
* fix bank sync row heights

* note
2025-02-27 01:05:46 +00:00
Alec Bakholdin
94f94497af resets transaction search even if search text is not empty (#4461)
* resets transaction search even if search text is not empty

* added release notes

---------

Co-authored-by: Alec Bakholdin <abakho@icims.com>
2025-02-27 00:03:50 +00:00
Alec Bakholdin
a72fd74c5e Resolves #4429 crash where clicking "manage payees" with an empty payee then clicking dropdown (#4462)
* added release notes

* only set payee in state on page navigation if payee id is present

---------

Co-authored-by: Alec Bakholdin <abakho@icims.com>
2025-02-27 00:02:23 +00:00
Joel Jeremy Marquez
5214549ed3 [Mobile] Change budget table colors when on non-current month (#4448)
* Change budget table colors when on non-current month

* Release notes

* Update VRT

* Dummy commit

* Revert calendar icon

* Update VRT

* Update schedule icons

* Update VRT

* Dummy commit

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-25 08:41:40 -08:00
Matt Fiddaman
3c8212e130 change i18n errors to info (#4453) 2025-02-25 16:02:45 +00:00
Matt Fiddaman
eface19216 sort schedule previews by date, then amount (#4452)
* sort schedule previews by date, then amount

* note
2025-02-25 15:10:38 +00:00
lelemm
f413fa03ae 🐛 Fix the default language init for electron (#4439)
* Fix for the default language for electron

* md
2025-02-24 00:03:12 -03:00
Matt Fiddaman
81b30d74e4 prevent docker-edge workflow from running on pushes to forks (#4430) 2025-02-22 22:48:18 +00:00
lelemm
0fddcac76d 📚 Start the application with the browser default language (#4415)
* Start the application with browser default language

* md
2025-02-22 12:21:06 -03:00
Andrey Romanov
1511587e88 Mobile: adjust modals height to visual viewport (#4427)
* Mobile: adapt autocomplete modals to visual viewport

* Fix modal max-height, animate height changes

* Update VRT

* Update max-height to be 90% of visual viewport

* Update VRT

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2025-02-22 00:18:18 +00:00
Michael Clark
ff7c358b83 :electron: Improving electron logs (#4407)
* enhancing electron logs to send messages to client window about logs send before client window startup

* release notes

* typing the logs

* ts
2025-02-21 19:58:18 +00:00
Joel Jeremy Marquez
f88b00ae77 Extract preferences related server handlers from main.ts to server/preferences/app.ts (#4420)
* Extract preferences related server handlers from main.ts to server/preferences/app.ts

* Release notes

* Fix types

* FIx typecheck errors

* Code review
2025-02-21 09:43:30 -08:00
1512 changed files with 11521 additions and 7479 deletions

View File

@@ -1,7 +1,11 @@
#!/bin/bash
set -euo pipefail
version="${1#v}"
if [ "$#" -gt 0 ]; then
version="${1#v}"
else
version=""
fi
files_to_bump=(
packages/api/package.json

View File

@@ -24,6 +24,7 @@ env:
IMAGES: |
actualbudget/actual-server
ghcr.io/actualbudget/actual-server
ghcr.io/actualbudget/actual
# Creates the following tags:
# - actual-server:edge
@@ -33,6 +34,7 @@ env:
jobs:
build:
if: ${{ github.event.repository.fork == false }}
name: Build Docker image
runs-on: ubuntu-latest
strategy:

View File

@@ -13,6 +13,7 @@ env:
IMAGES: |
actualbudget/actual-server
ghcr.io/actualbudget/actual-server
ghcr.io/actualbudget/actual
# Creates the following tags:
# - actual-server:latest (see docker/metadata-action flavor inputs, below)

3
.gitignore vendored
View File

@@ -53,3 +53,6 @@ bundle.mobile.js.map
# build output
package.tgz
# Fly.io configuration
fly.toml

View File

@@ -9,6 +9,7 @@ if ! [ -d packages/desktop-client/locale ]; then
git clone https://github.com/actualbudget/translations packages/desktop-client/locale
fi
pushd packages/desktop-client/locale > /dev/null
git checkout .
git pull
popd > /dev/null
packages/desktop-client/bin/remove-untranslated-languages

View File

@@ -42,6 +42,7 @@ if ! [ -d packages/desktop-client/locale ]; then
git clone https://github.com/actualbudget/translations packages/desktop-client/locale
fi
pushd packages/desktop-client/locale > /dev/null
git checkout .
git pull
popd > /dev/null
packages/desktop-client/bin/remove-untranslated-languages

View File

@@ -94,6 +94,7 @@ export default [
'packages/api/@types',
'packages/api/migrations',
'packages/crdt/dist',
'packages/component-library/src/icons/**/*',
'packages/desktop-client/bundle.browser.js',
'packages/desktop-client/build/',
'packages/desktop-client/build-electron/',
@@ -102,7 +103,6 @@ export default [
'packages/desktop-client/public/data/',
'packages/desktop-client/**/node_modules/*',
'packages/desktop-client/node_modules/',
'packages/desktop-client/src/icons/**/*',
'packages/desktop-client/test-results/',
'packages/desktop-client/playwright-report/',
'packages/desktop-electron/client-build/',
@@ -789,7 +789,6 @@ export default [
'packages/desktop-client/src/components/select/DateSelect.tsx',
'packages/desktop-client/src/components/sidebar/Tools.tsx',
'packages/desktop-client/src/components/sort.tsx',
'packages/desktop-client/src/components/spreadsheet/useSheetValue.ts',
],
rules: {

View File

@@ -1,6 +1,6 @@
{
"name": "@actual-app/api",
"version": "25.2.1",
"version": "25.3.1",
"license": "MIT",
"description": "An API for Actual",
"engines": {

View File

@@ -7,14 +7,22 @@
},
"dependencies": {
"@emotion/css": "^11.13.4",
"react-aria-components": "^1.4.1"
"react-aria-components": "^1.7.0",
"usehooks-ts": "^3.0.1"
},
"devDependencies": {
"@svgr/cli": "^8.1.0",
"@types/react": "^18.2.0",
"react": "18.2.0"
},
"exports": {
"./icons/*": "./src/icons/*.tsx",
"./hooks/*": "./src/hooks/*.ts",
"./icons/logo": "./src/icons/logo/index.ts",
"./icons/v0": "./src/icons/v0/index.ts",
"./icons/v1": "./src/icons/v1/index.ts",
"./icons/v2": "./src/icons/v2/index.ts",
"./icons/AnimatedLoading": "./src/icons/AnimatedLoading.tsx",
"./icons/Loading": "./src/icons/Loading.tsx",
"./aligned-text": "./src/AlignedText.tsx",
"./block": "./src/Block.tsx",
"./button": "./src/Button.tsx",
@@ -22,10 +30,12 @@
"./form-error": "./src/FormError.tsx",
"./initial-focus": "./src/InitialFocus.ts",
"./inline-field": "./src/InlineField.tsx",
"./input": "./src/Input.tsx",
"./label": "./src/Label.tsx",
"./menu": "./src/Menu.tsx",
"./paragraph": "./src/Paragraph.tsx",
"./popover": "./src/Popover.tsx",
"./select": "./src/Select.tsx",
"./space-between": "./src/SpaceBetween.tsx",
"./stack": "./src/Stack.tsx",
"./styles": "./src/styles.ts",
@@ -36,5 +46,8 @@
"./toggle": "./src/Toggle.tsx",
"./tooltip": "./src/Tooltip.tsx",
"./view": "./src/View.tsx"
},
"scripts": {
"generate:icons": "rm src/icons/*/*.tsx; cd src/icons && svgr --template template.ts --index-template index-template.ts --typescript --expand-props start -d . ."
}
}

View File

@@ -2,15 +2,12 @@ import React, {
type InputHTMLAttributes,
type KeyboardEvent,
type Ref,
useRef,
} from 'react';
import { styles } from '@actual-app/components/styles';
import { css, cx } from '@emotion/css';
import { useMergedRefs } from '../../hooks/useMergedRefs';
import { useProperFocus } from '../../hooks/useProperFocus';
import { theme, type CSSProperties } from '../../style';
import { styles, type CSSProperties } from './styles';
import { theme } from './theme';
export const defaultInputStyle = {
outline: 0,
@@ -29,7 +26,6 @@ type InputProps = InputHTMLAttributes<HTMLInputElement> & {
onEscape?: (event: KeyboardEvent<HTMLInputElement>) => void;
onChangeValue?: (newValue: string) => void;
onUpdate?: (newValue: string) => void;
focused?: boolean;
};
export function Input({
@@ -39,18 +35,12 @@ export function Input({
onEscape,
onChangeValue,
onUpdate,
focused,
className,
...nativeProps
}: InputProps) {
const ref = useRef<HTMLInputElement>(null);
useProperFocus(ref, focused);
const mergedRef = useMergedRefs<HTMLInputElement>(ref, inputRef);
return (
<input
ref={mergedRef}
ref={inputRef}
className={cx(
css(
defaultInputStyle,

View File

@@ -1,11 +1,10 @@
import { useRef, useState, type CSSProperties } from 'react';
import { Button } from '@actual-app/components/button';
import { Menu } from '@actual-app/components/menu';
import { Popover } from '@actual-app/components/popover';
import { View } from '@actual-app/components/view';
import { SvgExpandArrow } from '../../icons/v0';
import { Button } from './Button';
import { SvgExpandArrow } from './icons/v0';
import { Menu } from './Menu';
import { Popover } from './Popover';
import { View } from './View';
function isValueOption<Value>(
option: readonly [Value, string] | typeof Menu.line,

View File

@@ -0,0 +1,23 @@
import { useWindowSize } from 'usehooks-ts';
import { breakpoints } from '../tokens';
export function useResponsive() {
const { height, width } = useWindowSize({
debounceDelay: 250,
});
// Possible view modes: narrow, small, medium, wide
// To check if we're at least small width, check !isNarrowWidth
return {
// atLeastMediumWidth is provided to avoid checking (isMediumWidth || isWideWidth)
atLeastMediumWidth: width >= breakpoints.medium,
isNarrowWidth: width < breakpoints.small,
isSmallWidth: width >= breakpoints.small && width < breakpoints.medium,
isMediumWidth: width >= breakpoints.medium && width < breakpoints.wide,
// No atLeastWideWidth because that's identical to isWideWidth
isWideWidth: width >= breakpoints.wide,
height,
width,
};
}

View File

@@ -6,8 +6,8 @@ function indexTemplate(filePaths) {
const basename = path.basename(filePath, path.extname(filePath));
const exportName = `Svg${basename}`;
return `export { ${exportName} } from './${basename}'`;
})
});
return exportEntries.join('\n');
}
module.exports = indexTemplate
module.exports = indexTemplate;

View File

Before

Width:  |  Height:  |  Size: 1006 B

After

Width:  |  Height:  |  Size: 1006 B

View File

@@ -1,5 +1,5 @@
// @ts-strict-ignore
const template = ({ imports, interfaces, componentName, props, jsx }, { tpl }) => {
const tmpl = ({ imports, interfaces, componentName, props, jsx }, { tpl }) => {
return tpl`
${imports};
@@ -8,7 +8,7 @@ ${interfaces};
export const ${componentName} = (${props}) => (
${jsx}
);
`
}
`;
};
module.exports = template
module.exports = tmpl;

View File

Before

Width:  |  Height:  |  Size: 601 B

After

Width:  |  Height:  |  Size: 601 B

View File

Before

Width:  |  Height:  |  Size: 462 B

After

Width:  |  Height:  |  Size: 462 B

View File

Before

Width:  |  Height:  |  Size: 817 B

After

Width:  |  Height:  |  Size: 817 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 379 B

After

Width:  |  Height:  |  Size: 379 B

View File

Before

Width:  |  Height:  |  Size: 1005 B

After

Width:  |  Height:  |  Size: 1005 B

View File

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

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