Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

♻️ (synced-prefs) move budget type to synced prefs #3427

Merged
merged 7 commits into from
Sep 17, 2024

Conversation

MatissJanis
Copy link
Member

@MatissJanis MatissJanis commented Sep 13, 2024

Depends on #3423

Summary by CodeRabbit

Release Notes

  • New Features

    • Enhanced synchronization of budget type preferences across devices and sessions.
    • Added support for translations in the BalanceWithCarryover component to improve accessibility for international users.
  • Bug Fixes

    • Improved reliability of budget type retrieval by sourcing directly from the database.
  • Refactor

    • Simplified budget type management by consolidating multiple hooks into a single synchronized preference approach.
    • Removed outdated budget type setting handler to streamline functionality.
  • Chores

    • Updated preference management system to ensure consistency and reliability in user settings.

@actual-github-bot actual-github-bot bot changed the title ♻️ (synced-prefs) move budget type to synced prefs [WIP] ♻️ (synced-prefs) move budget type to synced prefs Sep 13, 2024
@@ -174,17 +174,3 @@ export async function prewarmAllMonths(
months.map(month => prewarmMonth(budgetType, spreadsheet, month)),
);
}

export async function switchBudgetType(
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not necessary anymore IMO. We already do the prewarming operation in the budget page - inside a useEffect hook. So whenever budgetType changes - the prewarming will be performed.

Copy link
Contributor

github-actions bot commented Sep 13, 2024

Bundle Stats — desktop-client

Hey there, this message comes from a GitHub action that helps you and reviewers to understand how these changes affect the size of this project's bundle.

As this PR is updated, I'll keep you updated on how the bundle size is impacted.

Total

Files count Total bundle size % Changed
9 5.18 MB → 5.18 MB (-876 B) -0.02%
Changeset
File Δ Size
src/components/mobile/budget/BudgetTable.jsx 📉 -4 B (-0.01%) 52.14 kB → 52.14 kB
src/components/mobile/budget/index.tsx 📉 -2 B (-0.02%) 11.47 kB → 11.47 kB
src/components/autocomplete/CategoryAutocomplete.tsx 📉 -2 B (-0.02%) 10.17 kB → 10.17 kB
src/components/budget/index.tsx 📉 -2 B (-0.02%) 8.77 kB → 8.77 kB
src/components/settings/Experimental.tsx 📉 -2 B (-0.04%) 4.51 kB → 4.51 kB
src/components/budget/util.ts 📉 -323 B (-9.34%) 3.38 kB → 3.06 kB
src/components/settings/BudgetTypeSettings.tsx 📉 -541 B (-21.19%) 2.49 kB → 1.96 kB
View detailed bundle breakdown

Added

No assets were added

Removed

No assets were removed

Bigger

No assets were bigger

Smaller

Asset File Size % Changed
static/js/index.js 3.21 MB → 3.21 MB (-868 B) -0.03%
static/js/narrow.js 80.62 kB → 80.62 kB (-6 B) -0.01%
static/js/wide.js 225.21 kB → 225.21 kB (-2 B) -0.00%

Unchanged

Asset File Size % Changed
static/js/resize-observer.js 18.37 kB 0%
static/js/indexeddb-main-thread-worker-e59fee74.js 13.5 kB 0%
static/js/usePreviewTransactions.js 1.59 kB 0%
static/js/AppliedFilters.js 20.97 kB 0%
static/js/BackgroundImage.js 122.29 kB 0%
static/js/ReportRouter.js 1.5 MB 0%

Copy link
Contributor

github-actions bot commented Sep 13, 2024

Bundle Stats — loot-core

Hey there, this message comes from a GitHub action that helps you and reviewers to understand how these changes affect the size of this project's bundle.

As this PR is updated, I'll keep you updated on how the bundle size is impacted.

Total

Files count Total bundle size % Changed
1 1.19 MB → 1.19 MB (+10 B) +0.00%
Changeset
File Δ Size
packages/loot-core/src/server/sheet.ts 📈 +60 B (+0.88%) 6.66 kB → 6.72 kB
packages/loot-core/src/server/sync/index.ts 📈 +79 B (+0.33%) 23.41 kB → 23.48 kB
packages/loot-core/src/server/budget/actions.ts 📉 -10 B (-0.09%) 10.29 kB → 10.28 kB
packages/loot-core/src/server/main.ts 📉 -239 B (-0.38%) 61.34 kB → 61.1 kB
packages/loot-core/src/server/prefs.ts 📉 -24 B (-1.16%) 2.02 kB → 2 kB
packages/loot-core/migrations/1723665565000_prefs.js 📉 -76 B (-5.28%) 1.41 kB → 1.33 kB
View detailed bundle breakdown

Added

No assets were added

Removed

No assets were removed

Bigger

Asset File Size % Changed
kcab.worker.js 1.19 MB → 1.19 MB (+10 B) +0.00%

Smaller

No assets were smaller

Unchanged

No assets were unchanged

@MatissJanis MatissJanis changed the title [WIP] ♻️ (synced-prefs) move budget type to synced prefs ♻️ (synced-prefs) move budget type to synced prefs Sep 13, 2024
Base automatically changed from matiss/synced-prefs-6 to master September 17, 2024 06:59
Copy link

netlify bot commented Sep 17, 2024

Deploy Preview for actualbudget ready!

Name Link
🔨 Latest commit ee477a2
🔍 Latest deploy log https://app.netlify.com/sites/actualbudget/deploys/66e936c54c3d270008de8ac9
😎 Deploy Preview https://deploy-preview-3427.demo.actualbudget.org
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

@MikesGlitch
Copy link
Contributor

@coderabbitai full review

Copy link
Contributor

coderabbitai bot commented Sep 17, 2024

Actions performed

Full review triggered.

Copy link
Contributor

coderabbitai bot commented Sep 17, 2024

Walkthrough

The changes involve a comprehensive update to the management of the budgetType preference across various components in the application. The primary modification is the transition from using the useMetadataPref hook to the useSyncedPref hook for retrieving the budgetType. This adjustment is reflected in multiple files, including components for both desktop and mobile clients, as well as server-side logic. Additionally, the handling of budgetType has been centralized to improve consistency and reliability in preference synchronization.

Changes

Files Change Summary
.../autocomplete/CategoryAutocomplete.tsx Replaced useMetadataPref with useSyncedPref for budgetType.
.../budget/index.tsx, .../mobile/budget/BudgetTable.jsx, .../mobile/budget/index.tsx Replaced useMetadataPref with useSyncedPref for budgetType.
.../budget/util.ts Updated functions to accept budgetType as SyncedPrefs['budgetType'] and removed switchBudgetType function.
.../settings/BudgetTypeSettings.tsx Consolidated state management using useSyncedPref, removed loading state, simplified button logic.
.../settings/Experimental.tsx Replaced useMetadataPref with useSyncedPref for budgetType.
.../migrations/1723665565000_prefs.js Uncommented 'budgetType' in SYNCED_PREF_KEYS to include it in synchronized preferences.
.../server/budget/actions.ts Removed dependency on prefs module; now retrieves budgetType directly from the database.
.../server/main.ts Removed budget-set-type handler; modified loadBudget to fetch budgetType from the database.
.../server/prefs.ts Altered savePrefs function to only check for budgetName, removing budgetType.
.../server/sheet.ts Changed loadUserBudgets to retrieve budgetType from the database instead of using prefs.
.../server/sync/index.ts Introduced immediate handling of budgetType preference during synchronization.
.../types/prefs.d.ts Added budgetType to SyncedPrefs and removed it from MetadataPrefs.
.../types/server-handlers.d.ts Removed 'budget-set-type' handler from ServerHandlers interface.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant UI
    participant Server
    participant Database

    User->>UI: Request Budget Type
    UI->>Server: Fetch Budget Type
    Server->>Database: Query Budget Type
    Database-->>Server: Return Budget Type
    Server-->>UI: Send Budget Type
    UI-->>User: Display Budget Type
Loading

🐰 "In the meadow where preferences play,
The budget type found a new way.
From metadata's grasp, it took flight,
To synced realms, oh what a delight!
Now every rabbit, near and far,
Knows their budget, like a shining star!" 🌟


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

Share
Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    -- I pushed a fix in commit <commit_id>, please review it.
    -- Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    -- @coderabbitai generate unit testing code for this file.
    -- @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    -- @coderabbitai generate interesting stats about this repository and render them as a table.
    -- @coderabbitai read src/utils.ts and generate unit testing code.
    -- @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    -- @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Outside diff range and nitpick comments (1)
upcoming-release-notes/3352.md (1)

6-6: Fix the typo in the change description.

The change description seems to have a typo or grammatical error. It currently reads:

Support translations in Translation support for desktop-client/src/components/budget/BalanceWithCarryover.tsx

Consider rephrasing it to something like:

Added translation support for desktop-client/src/components/budget/BalanceWithCarryover.tsx

This will make the description clearer and easier to understand.

-Support translations in Translation support for desktop-client/src/components/budget/BalanceWithCarryover.tsx
+Added translation support for desktop-client/src/components/budget/BalanceWithCarryover.tsx
Review details

Configuration used: CodeRabbit UI
Review profile: CHILL

Commits

Files that changed from the base of the PR and between 6c87d85 and ee477a2.

Files selected for processing (17)
  • packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx (2 hunks)
  • packages/desktop-client/src/components/budget/index.tsx (2 hunks)
  • packages/desktop-client/src/components/budget/util.ts (3 hunks)
  • packages/desktop-client/src/components/mobile/budget/BudgetTable.jsx (3 hunks)
  • packages/desktop-client/src/components/mobile/budget/index.tsx (1 hunks)
  • packages/desktop-client/src/components/settings/BudgetTypeSettings.tsx (1 hunks)
  • packages/desktop-client/src/components/settings/Experimental.tsx (1 hunks)
  • packages/loot-core/migrations/1723665565000_prefs.js (1 hunks)
  • packages/loot-core/src/server/budget/actions.ts (1 hunks)
  • packages/loot-core/src/server/main.ts (1 hunks)
  • packages/loot-core/src/server/prefs.ts (1 hunks)
  • packages/loot-core/src/server/sheet.ts (1 hunks)
  • packages/loot-core/src/server/sync/index.ts (1 hunks)
  • packages/loot-core/src/types/prefs.d.ts (1 hunks)
  • packages/loot-core/src/types/server-handlers.d.ts (0 hunks)
  • upcoming-release-notes/3352.md (1 hunks)
  • upcoming-release-notes/3427.md (1 hunks)
Files not reviewed due to no reviewable changes (1)
  • packages/loot-core/src/types/server-handlers.d.ts
Additional comments not posted (25)
upcoming-release-notes/3427.md (1)

1-6: Release notes look good!

The release notes follow the standard format and accurately describe the change being made in this PR. The category, author, and description are all relevant and clear.

packages/loot-core/migrations/1723665565000_prefs.js (1)

15-15: LGTM! The change aligns with the transition of budgetType to synced preferences.

Uncommenting the entry for 'budgetType' in the SYNCED_PREF_KEYS array is a logical step in the process of transitioning the budgetType preference from metadata to synced preferences. This change ensures that budgetType is now actively managed as part of the synchronization process, allowing it to be stored and retrieved alongside other preference keys.

The overall functionality is enhanced by treating budgetType consistently with the other keys in the synchronization logic, which may affect how user preferences are persisted and accessed across sessions. This change promotes a more unified and reliable approach to managing user preferences.

packages/desktop-client/src/components/settings/BudgetTypeSettings.tsx (6)

1-1: LGTM!

The React import is necessary and correctly added.


3-3: LGTM!

The useSyncedPref hook is correctly imported and aligns with the changes mentioned in the summary.


4-4: LGTM!

The Button component is correctly imported and used in the component.


11-11: LGTM!

The useSyncedPref hook is correctly used to manage the budgetType state, and the default value is set appropriately.


14-15: LGTM!

The logic for updating the budgetType state is correct, and the setBudgetType function is correctly used.


21-24: LGTM!

The Button component is correctly used with the onSwitchType function, and the dynamic button text accurately reflects the action of switching between budgeting types.

packages/loot-core/src/server/prefs.ts (1)

Line range hint 47-55: Clarify the handling of budgetType after the removal from sync logic.

The removal of budgetType from the sync logic in the savePrefs function suggests a change in how this preference is being managed. It would be helpful to understand the reasoning behind this modification and how budgetType is being handled in other parts of the application after this change.

Please ensure that the removal of budgetType from this section does not introduce any unintended consequences or inconsistencies in the application's behavior related to budget types.

packages/loot-core/src/types/prefs.d.ts (1)

15-15: Verify the impact of moving budgetType to SyncedPrefs.

The change is consistent with the AI-generated summary and implies that budgetType will now be synchronized across devices.

Run the following script to verify the usage of budgetType and ensure that all references have been updated to use SyncedPrefs:

Additionally, consider the implications of synchronizing budgetType across devices on the user experience and data consistency. Ensure that the synchronization behavior aligns with the intended design.

Verification successful

Verification successful: budgetType migration to SyncedPrefs is complete and consistent.

The codebase analysis confirms that:

  • All references to MetadataPrefs.budgetType have been removed.
  • budgetType is now accessed using the useSyncedPref hook, indicating proper integration with SyncedPrefs.
  • The change has been consistently applied across various components and utilities.

No further action is required regarding this change.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify all references to `budgetType` have been updated to use `SyncedPrefs`.

# Test: Search for references to `budgetType`. Expect: No references to `MetadataPrefs.budgetType`.
rg --type typescript $'budgetType'

Length of output: 68


Script:

#!/bin/bash
# Description: Verify all references to `budgetType` have been updated to use `SyncedPrefs`.

# Search for all occurrences of `budgetType`
echo "Searching for all occurrences of budgetType:"
rg --type-add 'ts:*.{ts,tsx}' --type-add 'js:*.{js,jsx}' --type ts --type js 'budgetType'

echo -e "\nSearching for any remaining references to MetadataPrefs.budgetType:"
rg --type-add 'ts:*.{ts,tsx}' --type-add 'js:*.{js,jsx}' --type ts --type js 'MetadataPrefs\.budgetType'

echo -e "\nSearching for new references to SyncedPrefs.budgetType:"
rg --type-add 'ts:*.{ts,tsx}' --type-add 'js:*.{js,jsx}' --type ts --type js 'SyncedPrefs\.budgetType'

Length of output: 7854

packages/desktop-client/src/components/settings/Experimental.tsx (1)

72-72: LGTM!

The change from useMetadataPref to useSyncedPref for retrieving the budgetType preference is a good refactor. Using useSyncedPref potentially improves the synchronization and consistency of the budgetType preference across different components or sessions in the application.

The default value for budgetType remains 'rollover', ensuring that existing functionality is preserved. The logic for determining the enabled state of the budget report feature and the condition for blocking the toggle also remains unchanged, indicating that the core functionality of the feature toggle is intact despite the underlying change in preference management.

packages/desktop-client/src/components/budget/util.ts (3)

7-7: LGTM!

The import statement for SyncedPrefs type is correct and aligns with the transition from MetadataPrefs to SyncedPrefs mentioned in the summary.


144-144: LGTM!

The budgetType parameter type change in the prewarmMonth function is correct and aligns with the transition from MetadataPrefs to SyncedPrefs.


159-159: LGTM!

The budgetType parameter type change in the prewarmAllMonths function is correct and aligns with the transition from MetadataPrefs to SyncedPrefs.

packages/loot-core/src/server/sheet.ts (1)

198-201: Approve the changes to retrieve budgetType from the database.

The new implementation ensures that the budgetType is always fetched from the database, which is a more robust and centralized approach compared to the previous implementation that relied on the prefs module. This change allows for more dynamic updates to user preferences without requiring changes to the codebase.

The default value of 'rollover' is used if no budgetType is found in the database, which maintains backward compatibility and prevents unexpected behavior.

packages/loot-core/src/server/budget/actions.ts (2)

30-30: LGTM!

The change in the function logic to call isReflectBudget() instead of using prefs.getPrefs() is consistent with the alterations mentioned in the summary. The implementation looks good.


34-37: Looks good!

The change in the function implementation to retrieve budgetType from the database instead of using prefs.getPrefs() is a good improvement. It enhances the reliability of the budget type retrieval by ensuring it is sourced directly from the database.

The SQL query and the logic to determine if the budget type is 'report' are implemented correctly.

packages/desktop-client/src/components/budget/index.tsx (2)

28-28: LGTM!

The import change from useMetadataPref to useSyncedPref aligns with the PR objective of moving the budget type to synced preferences. This is a good refactor to centralize preference management.


81-81: Verify useSyncedPref usage for budgetType across the codebase.

The change from useMetadataPref to useSyncedPref for managing the budgetType preference aligns with the PR objective and is a good refactor.

However, it's important to ensure that all relevant components have been updated to use useSyncedPref for budgetType to maintain consistency across the application.

Run the following script to verify the usage of useSyncedPref for budgetType:

Verification successful

Migration to useSyncedPref for 'budgetType' successfully implemented

The verification process confirms that the migration from useMetadataPref to useSyncedPref for the 'budgetType' preference has been successfully and consistently implemented across the codebase. Key observations:

  • No occurrences of useMetadataPref('budgetType') were found.
  • useSyncedPref('budgetType') is now used in multiple components, including:
    • Mobile and desktop budget components
    • Category autocomplete
    • Settings (Experimental and BudgetTypeSettings)

The change has been applied comprehensively, maintaining consistency across different parts of the application. The default value of 'rollover' is also consistently used, ensuring backward compatibility.

Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify `useSyncedPref` is used for `budgetType` across the codebase.

# Test: Search for the usage of `useMetadataPref` with `budgetType`. Expect: No occurrences.
rg --type typescript -A 5 $'useMetadataPref\(\'budgetType\'\)'

# Test: Search for the usage of `useSyncedPref` with `budgetType`. Expect: Only occurrences of the new usage.
rg --type typescript -A 5 $'useSyncedPref\(\'budgetType\'\)'  

Length of output: 203


Script:

#!/bin/bash
# Description: Verify `useSyncedPref` is used for `budgetType` across the codebase.

# Test: Search for the usage of `useMetadataPref` with `budgetType`. Expect: No occurrences.
echo "Searching for useMetadataPref('budgetType'):"
fd -e ts -e tsx | xargs rg -n -A 5 "useMetadataPref\('budgetType'\)"

echo ""
echo "Searching for useSyncedPref('budgetType'):"
# Test: Search for the usage of `useSyncedPref` with `budgetType`. Expect: Only occurrences of the new usage.
fd -e ts -e tsx | xargs rg -n -A 5 "useSyncedPref\('budgetType'\)"

Length of output: 3681

packages/desktop-client/src/components/autocomplete/CategoryAutocomplete.tsx (1)

382-382: LGTM!

The change from useMetadataPref to useSyncedPref for retrieving the budgetType preference aligns with the PR objective and should improve the consistency of preference synchronization. The default value and the subsequent logic remain unchanged, ensuring no functional impact.

packages/desktop-client/src/components/mobile/budget/index.tsx (1)

45-45: LGTM!

The change from useMetadataPref to useSyncedPref for retrieving the budgetType preference is a good move. It ensures that the preference is consistently synchronized across components or sessions, potentially improving the user experience.

The surrounding logic remains intact, and the change is isolated to the preference retrieval without affecting the functionality of the Budget component.

packages/loot-core/src/server/sync/index.ts (1)

362-366: LGTM!

The new conditional logic for handling the budgetType preference synchronization is a great addition. It ensures that the application state is updated in real-time when the budgetType preference is detected in the incoming messages.

This change improves the responsiveness of the application and provides immediate feedback to the user when the budgetType preference is updated. The code segment is logically correct and aligns with the objective of enhancing the synchronization of the budgetType preference.

Good job on streamlining the control flow by centralizing the handling of the budgetType preference in one location.

packages/loot-core/src/server/main.ts (1)

1980-1984: LGTM!

The change to retrieve the budget type from the database instead of user preferences is a good refactor for centralization and consistency. The default value of 'rollover' maintains backward compatibility.

packages/desktop-client/src/components/mobile/budget/BudgetTable.jsx (2)

228-229: LGTM! Verify the useSyncedPref hook implementation.

The change from useMetadataPref to useSyncedPref for managing the budgetType preference looks good. It suggests a shift towards a more centralized approach to preference synchronization.

Please ensure that the useSyncedPref hook is implemented correctly and provides the expected functionality for consistent preference management across the application.


361-362: LGTM! Verify the useSyncedPref hook implementation.

The change from useMetadataPref to useSyncedPref for managing the budgetType preference in the ExpenseCategory function looks good. It maintains consistency with the similar change made in the BudgetCell function.

Please ensure that the useSyncedPref hook is implemented correctly and provides the expected functionality for consistent preference management across the application.

Copy link
Contributor

@MikesGlitch MikesGlitch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

a-gradina pushed a commit to a-gradina/actual that referenced this pull request Sep 24, 2024
matt-fidd added a commit that referenced this pull request Oct 3, 2024
* marked files for translation

* added release note

* fixed linting warnings

* 🐛 fix account filters being overridden (#3441)

* :electron: Reduce package size  (#3443)

* reduce package size of all packages

* release notes

* Update beforePackHook.ts

* [Maintenance] Cleanup react aria packages and dedupe (#3450)

* Cleanup react aria packages and dedupe

* Release notes

* ♻️ (synced-prefs) moving the prefs from metadata.json to the db (#3423)

* :electron: Restart server silently when adding self signed cert and add some logs (#3431)

* restart server silently on add self signed cert and add some logging

* release notes

* fix name

* updating names to be more specific

* removing setloading

* feedback

* ♻️ (synced-prefs) move budget type to synced prefs (#3427)

* update synced account balance in db if available (#3452)

* 🐛 (synced-prefs) fix bulk-reading not working in import modal (#3460)

* fix: csv import deduplication (#3456)

* ✨ release simplefin as a first-party feature (#3459)

Closes #2272

* Do not allow renaming to an empty category or group name (#3463)

* Do not allow renaming to an emoty category or group name

* Release notes

* [Mobile] Fix #3214 - Pull down to refresh triggering clicks on budget cells (#3374)

* Fix #3214

* Fix rollover indicator

* VRT

* Fix typecheck error

* VRT

* Release notes

* VRT

* Update style

* Fix budgeted

* VRT

* VRT

* Revert VRT

* VRT

* Fix style

* Revert usePreviewTransactions

* Fix error

* Fix reports form submit handlers (#3462)

* Fix form submit handlers

* Release notes

* :electron: Remove some old updater code (#3468)

* remove some old updater code

* remove old updater logic

* CSV import e2e tests (#3467)

* 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

* Undoable auto transfer notes + auto notes for cover (#3411)

* Undo auto transfer notes + auto notes for cover

* Release notes

* Fix notes

* Fix notes undo

* Do not show clicked category on transfer or cover menus

* Fix typecheck error

* typecheck

* Fix removeCategoriesFromGroups

* 🐛 (reports) deleting custom report should remove it from the dashboard (#3469)

* Revert "CSV import e2e tests (#3467)" (#3474)

This reverts commit 5e12d40.

* ♻️ (synced-prefs) separate metadata and local prefs out (#3458)

* :electron: Replace deprecated file protocol registration (#3475)

* replace deprecated file handler in electron

* release notes

* types eh

* types

* update sql regexp to default to empty string when field is null (#3480)

* ♻️ rename report/rollover budget to tracking/envelope (#3483)

* 🐛 (import) fix csv import checkboxes not working (#3478)

* Update tooltip and themes with better visibility (#3298)

* Update tooltip and themes with better visibility

* Rename merge request # into release notes

* rename release note

* update VRT

* tweak light theme

* dont put border on autocomplete menus

* update VRT

* tweak popover style

* simplify

* update VRT

* update VRT

---------

Co-authored-by: Dustin Conlon <dustin@dustinconlon.com>
Co-authored-by: Dustin Conlon <58367364+VoltaicGRiD@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>

* fix modals on mobile BudgetTable (#3487)

* Fix privacy filter (#3472)

* Fix privacy filter

* Release notes

* Coderabbit suggestion

* VRT

* VRT

* Revert VRT

* VRT

* VRT

* VRT

* VRT

* Delete VRT

* VRT

* Revert VRT

* 🐛 fix custom reports crashing when opening table (#3484)

* 🧪 (tests) adding custom report e2e tests (#3493)

* ✨ (dashboards) ability to save filters & timeframes on spending widgets (#3432)

* marked files for translation

* Revert ":bug: fix account filters being overridden (#3441)"

This reverts commit 7336bad.

* Revert "Revert ":bug: fix account filters being overridden (#3441)""

This reverts commit 5cbadc4.

* Revert changes due to failed rebase

* removed import of t

* fixed lint warning

* added PayeeTableRow.tsx

* needed changes

* bugfix: pluralization

* variables adjustments

* removed doubled trans

---------

Co-authored-by: Matiss Janis Aboltins <matiss@mja.lv>
Co-authored-by: Michael Clark <5285928+MikesGlitch@users.noreply.github.com>
Co-authored-by: Joel Jeremy Marquez <joeljeremy.marquez@gmail.com>
Co-authored-by: Matt Fiddaman <github@m.fiddaman.uk>
Co-authored-by: Koen van Staveren <koenvanstaveren@hotmail.com>
Co-authored-by: Ryan Bianchi <1435081+qedi-r@users.noreply.github.com>
Co-authored-by: Robert Dyer <rdyer@unl.edu>
Co-authored-by: Dustin Conlon <dustin@dustinconlon.com>
Co-authored-by: Dustin Conlon <58367364+VoltaicGRiD@users.noreply.github.com>
Co-authored-by: youngcw <calebyoung94@gmail.com>
Co-authored-by: Tim <hello@timsmart.co>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants