From 45a5e3fc5ef5cd5301a530aeb6618a271b799ce0 Mon Sep 17 00:00:00 2001 From: Ross Miller Date: Mon, 2 Mar 2026 11:50:08 +0000 Subject: [PATCH] WIP --- BudgetApp/BudgetApp.csproj | 2 + BudgetApp/Components/Layout/NavMenu.razor | 8 +- BudgetApp/Components/Layout/NavMenu.razor.css | 6 + BudgetApp/Components/Pages/About.razor | 57 +++++++ BudgetApp/Components/Pages/Home.razor | 74 ++++++--- BudgetApp/Components/Pages/Login.razor | 55 +++++++ BudgetApp/Components/Pages/Transactions.razor | 143 +++++++++++++++--- BudgetApp/Program.cs | 100 ++++++++++++ BudgetApp/appsettings.json | 23 ++- BudgetApp/budgetapp.db-shm | Bin 32768 -> 32768 bytes BudgetApp/budgetapp.db-wal | Bin 1182472 -> 1252512 bytes 11 files changed, 428 insertions(+), 40 deletions(-) create mode 100644 BudgetApp/Components/Pages/About.razor diff --git a/BudgetApp/BudgetApp.csproj b/BudgetApp/BudgetApp.csproj index 40cfd13..8133746 100644 --- a/BudgetApp/BudgetApp.csproj +++ b/BudgetApp/BudgetApp.csproj @@ -12,6 +12,8 @@ + + runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/BudgetApp/Components/Layout/NavMenu.razor b/BudgetApp/Components/Layout/NavMenu.razor index 27f7eb9..d33c7f7 100644 --- a/BudgetApp/Components/Layout/NavMenu.razor +++ b/BudgetApp/Components/Layout/NavMenu.razor @@ -1,6 +1,7 @@ @inject AccountService AccountService @inject AuthenticationStateProvider AuthStateProvider @inject AppState AppState +@inject NavigationManager Navigation @implements IDisposable @rendermode InteractiveServer @@ -57,7 +58,7 @@
Balances
@foreach (var account in accounts) { -
+
@account.Name @@ -103,5 +104,10 @@ { AppState.OnAccountsChanged -= HandleAccountsChanged; } + + private void NavigateToAccounts() + { + Navigation.NavigateTo("accounts"); + } } diff --git a/BudgetApp/Components/Layout/NavMenu.razor.css b/BudgetApp/Components/Layout/NavMenu.razor.css index e5ebe6c..79d8dc4 100644 --- a/BudgetApp/Components/Layout/NavMenu.razor.css +++ b/BudgetApp/Components/Layout/NavMenu.razor.css @@ -141,6 +141,12 @@ align-items: center; gap: 0.5rem; padding: 0.35rem 0; + border-radius: 4px; + transition: background-color 0.15s; +} + +.balance-item:hover { + background-color: rgba(255, 255, 255, 0.1); } .balance-color { diff --git a/BudgetApp/Components/Pages/About.razor b/BudgetApp/Components/Pages/About.razor new file mode 100644 index 0000000..9d5dacf --- /dev/null +++ b/BudgetApp/Components/Pages/About.razor @@ -0,0 +1,57 @@ +@page "/about" +@layout AuthLayout +@inject IConfiguration Configuration + +Budgeteer — About + +

💰 Budgeteer

+ +

+ A personal finance dashboard built with Blazor Server. +

+ +@if (links.Count > 0) +{ +
+ @foreach (var link in links) + { + + @((MarkupString)link.Icon) @link.Label + + } +
+} + +

+ Sign in or Register +

+ +@code { + private record ContactLink(string Label, string Url, string Icon); + private List links = []; + + protected override void OnInitialized() + { + var about = Configuration.GetSection("About"); + + var email = about["Email"]; + if (!string.IsNullOrWhiteSpace(email)) + links.Add(new("Email", $"mailto:{email}", "")); + + var discord = about["Discord"]; + if (!string.IsNullOrWhiteSpace(discord)) + links.Add(new("Discord", discord, "")); + + var github = about["GitHub"]; + if (!string.IsNullOrWhiteSpace(github)) + links.Add(new("GitHub", github, "")); + + var twitter = about["Twitter"]; + if (!string.IsNullOrWhiteSpace(twitter)) + links.Add(new("Twitter", twitter, "")); + + var mastodon = about["Mastodon"]; + if (!string.IsNullOrWhiteSpace(mastodon)) + links.Add(new("Mastodon", mastodon, "")); + } +} diff --git a/BudgetApp/Components/Pages/Home.razor b/BudgetApp/Components/Pages/Home.razor index a323421..2e381d0 100644 --- a/BudgetApp/Components/Pages/Home.razor +++ b/BudgetApp/Components/Pages/Home.razor @@ -137,8 +137,8 @@ else }
-
-