Skip to content

Version 0.3.0 Updates and Fixes#31

Merged
kryptodrex merged 32 commits intodevelopfrom
issue-fixes
Mar 12, 2026
Merged

Version 0.3.0 Updates and Fixes#31
kryptodrex merged 32 commits intodevelopfrom
issue-fixes

Conversation

@kryptodrex
Copy link
Owner

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

  • Added IPC handler and preload bridge for renaming budget files, allowing users to safely rename their budget files from the app interface. (electron/main.ts, electron/preload.ts) [1] [2]
  • Introduced the ability to reorder accounts in the AccountsManager by adding a handleMoveAccount function and passing it as a prop to the accounts list. (src/components/AccountsManager/AccountsManager.tsx) [1] [2]

Styling and UI Improvements

  • Added a new stylesheet for the BenefitsManager component, providing improved layout, section headers, empty states, and responsive design. (src/components/BenefitsManager/BenefitsManager.css.backup)
  • Enhanced the BillsManager and LoansManager styles 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]
  • Updated the PayBreakdown component's color gradients and added a new style for post-tax segments, improving visual clarity. (src/components/PayBreakdown/PayBreakdown.css) [1] [2]
  • Improved glossary term styling to inherit color and use more context-aware underline colors. (src/components/Glossary/GlossaryTerm.css)

Usability and Wording Improvements

  • Updated wording in the BenefitsManager to 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

  • Bumped application version to 0.3.0 in package.json. (package.json)

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.
@github-actions
Copy link

Version Update Detected

Version has been correctly bumped from 0.2.0 to 0.3.0

Copilot AI and others added 5 commits March 12, 2026 14:35
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
@github-actions
Copy link

Version Update Detected

Version has been correctly bumped from 0.2.0 to 0.3.0

Copilot AI and others added 3 commits March 12, 2026 15:04
…Manager.tsx import

Co-authored-by: kryptodrex <25872870+kryptodrex@users.noreply.github.com>
…ipts

Fix TS2304: export LoanPaymentFrequency from auth.ts
@github-actions
Copy link

Version Update Detected

Version has been correctly bumped from 0.2.0 to 0.3.0

@kryptodrex kryptodrex merged commit 41f46ba into develop Mar 12, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants