Merged
Conversation
Introduce property tax support for mortgages and add an IPC to rename budget files. - electron: add 'rename-budget-file' IPC handler with validation (existence checks, no clobber) and error reporting; expose renameBudgetFile via preload. - LoansManager: add propertyTaxRate and propertyValue fields, inputs, and validation; compute monthly property tax, include it in payment split, totals, amortization rows, account aggregates and UI (payment split, stats, amortization table). Preserve existing insurance logic. - Update UI text/formatting to show property tax amounts and property value/rate where applicable. Add a .backup copy of the updated LoansManager component. - GlossaryTerm.css: adjust coloring to use inherit/currentColor and tweak text-decoration-color for better theming. These changes enable tracking/applying annual property tax on mortgage loans and allow renaming saved budget files from the renderer via the preload bridge.
Large refactor of LoansManager and its styles to shift from full amortization/term-focused loans to a recurring "loan payment" model with editable payment components. Added a payment-lines editor (createDefaultPaymentLines, mapLoanPaymentLinesToEditable), validation and normalization of paymentBreakdown, and conversion helpers (roundToCent, convertMonthlyPaymentToFrequency). The UI/modal was rebuilt to let users add/edit payment components, apply default components per loan type, and preview estimated monthly totals; the list view now shows payment breakdowns and simplified loan items. Removed a number of amortization/term/insurance calculations and many legacy fields in favor of a leaner payment-focused data flow; existing loans with paymentBreakdown are migrated, and monthlyPayment is used as a fallback. Also adds CSS for the new editor, modal and responsive behavior.
Add a post-tax segment to the pay breakdown UI and wire up its CSS. Updates include color-mix gradients for pretax/tax/net segments, a new .posttax-segment and .posttax-dot, and the visual bar now renders pre-tax, tax, post-tax (if present) and net segments with percentage labels. On the data side, compute postTaxPct and include conditional rendering/labels for post-tax deductions. Removed helper logic that computed monthly loan insurance and property tax from normalizeAccounts and simplified per-paycheck loan calculation to use only loan.monthlyPayment (converted to per-paycheck), preventing those extra components from being double-counted in the loan per-paycheck total.
Add accessible focus styles for footer-feedback-btn and encryption-status-btn, and restyle .footer-file-link to look like a bordered button (background, border, radius, padding, transition) instead of an inline link. Add focus and hover states for .footer-file-link to improve keyboard and visual UX. In the TSX, compute a platform-specific file manager name (Finder / File Explorer / Files) using navigator.platform and update the reveal button label to "Open in {fileManagerAppName}" while keeping the existing revealInFolder behavior.
Enable moving accounts up/down with animations and state handling. Added onMove prop to AccountsEditor, UI buttons for move up/down, and a short animation flow (300ms) that disables controls during the transition. Implemented handleMoveAccount in AccountsManager to swap account entries and persist order via updateBudgetData. Added CSS for action buttons, fade-out arrows, and move/displacement keyframe animations to AccountsEditor.css. The change prevents invalid moves at list boundaries and ensures the reorder only applies after the animation completes.
Introduce support for paycheck/account benefit deductions in BillsManager. Adds UI, state, and CRUD handlers for benefits (add/edit/delete), groups deductions by paycheck vs account, computes per-paycheck and monthly values (using pay settings/util helpers), and surfaces totals in the bills-by-account view. Includes new modals/forms for creating/editing deductions, tax-treatment controls, and updated header actions to add deductions. CSS additions style empty-state actions and benefit deduction items (.empty-state-actions, .benefit-deduction-item, .benefit-tax-badge, .benefit-source-note) and adjust layout on smaller screens. Also updates imports to include new utilities and uses window.confirm for delete prompts.
Introduce a new SavingsManager feature (SavingsManager.tsx) with accompanying CSS and an index export. The component integrates with BudgetContext to manage savings/investment contributions and retirement elections, including add/edit/delete flows, form validation, modal UIs, employer-match and yearly-limit calculations, and conversions between per-paycheck/monthly/yearly display modes. Also adds responsive styles (SavingsManager.css) and a barrel export (index.ts).
Introduce src/utils/frequency.ts to centralize frequency normalization and occurrences-per-year lookups (pay, bill, savings), including aliases and 'custom' support. Refactor convertBillToYearly to use getBillFrequencyOccurrencesPerYear and getPaychecksPerYear to use getPayFrequencyOccurrencesPerYear to remove duplicated switch logic. Add formatPayFrequencyLabel helper for user-friendly pay frequency labels.
Introduce savings/investment contributions and integrate them across the app. - types: add SavingsContribution, CoreFrequency/Savings/Loan frequency types and extend BudgetData and context types. - context: initialize savingsContributions, add add/update/delete handlers in BudgetContext and expose them via BudgetContextType. - storage: ensure savingsContributions are migrated and included in FileStorageService defaults. - PayBreakdown: include savings as an auto-calculated allocation category (isSavings/savingsCount), compute per-paycheck occurrences via frequency utils, update UI (placeholders, badges, navigation callback renamed to onNavigateToSavings), and show pay frequency label in the header selector. - PlanDashboard: replace Benefits tab/component references with SavingsManager where appropriate, add legacy tab normalization (normalizeLegacyTabId) when restoring/reading tabs and history, and update tab list to include 'savings'. - demo data: generate sample savings/investment contributions in demo budget data. - misc: remove duplicate local bill-year helper in favor of frequency utils and tweak PageHeader.css alignment. These changes add first-class handling of scheduled savings/investment transfers funded from accounts and surface them in allocation and navigation flows.
|
✅ Version Update Detected Version has been correctly bumped from |
Co-authored-by: kryptodrex <25872870+kryptodrex@users.noreply.github.com>
…ility Co-authored-by: kryptodrex <25872870+kryptodrex@users.noreply.github.com>
Signed-off-by: Joseph <25872870+kryptodrex@users.noreply.github.com>
Fix failing tests: savings tab rename + frequency utility
|
✅ Version Update Detected Version has been correctly bumped from |
…Manager.tsx import Co-authored-by: kryptodrex <25872870+kryptodrex@users.noreply.github.com>
…ipts Fix TS2304: export LoanPaymentFrequency from auth.ts
|
✅ Version Update Detected Version has been correctly bumped from |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces several new features and improvements across the application, most notably adding support for renaming budget files, improving account management, and enhancing the visual styling and clarity of several UI components. The following summarizes the most important changes:
New Features
electron/main.ts,electron/preload.ts) [1] [2]AccountsManagerby adding ahandleMoveAccountfunction and passing it as a prop to the accounts list. (src/components/AccountsManager/AccountsManager.tsx) [1] [2]Styling and UI Improvements
BenefitsManagercomponent, providing improved layout, section headers, empty states, and responsive design. (src/components/BenefitsManager/BenefitsManager.css.backup)BillsManagerandLoansManagerstyles with new classes for benefit deductions, tax badges, loan line editing, and improved responsive layouts. (src/components/BillsManager/BillsManager.css,src/components/LoansManager/LoansManager.css) [1] [2] [3] [4] [5] [6] [7]PayBreakdowncomponent's color gradients and added a new style for post-tax segments, improving visual clarity. (src/components/PayBreakdown/PayBreakdown.css) [1] [2]src/components/Glossary/GlossaryTerm.css)Usability and Wording Improvements
BenefitsManagerto use "Your Contribution" instead of "Employee Contribution" for better user clarity, and made related label and error message adjustments. (src/components/BenefitsManager/BenefitsManager.tsx) [1] [2] [3] [4] [5]Other
0.3.0inpackage.json. (package.json)