From 94bb1d904b58c5291b89506e35dec643c9ac2958 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Fri, 7 Nov 2025 00:29:58 -0600 Subject: [PATCH 1/4] Update docker-compose.yml --- LANCommander.Server/docker-compose.yml | 7 ------- 1 file changed, 7 deletions(-) diff --git a/LANCommander.Server/docker-compose.yml b/LANCommander.Server/docker-compose.yml index 7fbfa911..d58d47c2 100644 --- a/LANCommander.Server/docker-compose.yml +++ b/LANCommander.Server/docker-compose.yml @@ -12,13 +12,6 @@ services: # - WINE=1 volumes: - /path/to/appdata/config:/app/config - - /path/to/appdata/Backups:/app/Backups - - /path/to/appdata/Launcher:/app/Launcher - - /path/to/appdata/Media:/app/Media - - /path/to/appdata/Saves:/app/Saves - - /path/to/appdata/Servers:/app/Servers - - /path/to/appdata/Uploads:/app/Uploads - - /path/to/appdata/Updates:/app/Updates ports: - 1337:1337/tcp # Webinterface - 35891:35891/udp # Beacon Broadcast From 8342d803c171818a644cbf38e10e6f9a7e201c1f Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Fri, 7 Nov 2025 00:31:41 -0600 Subject: [PATCH 2/4] Run development workflow on development branch push --- .github/workflows/LANCommander.Development.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/LANCommander.Development.yml b/.github/workflows/LANCommander.Development.yml index 12c1d130..42a9c804 100644 --- a/.github/workflows/LANCommander.Development.yml +++ b/.github/workflows/LANCommander.Development.yml @@ -1,6 +1,9 @@ name: LANCommander Development on: + push: + branches: + - development workflow_dispatch: env: From cf0ccc3b702ffce3c52801e2088979aea6db2227 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Fri, 7 Nov 2025 19:24:04 -0600 Subject: [PATCH 3/4] Load additional data for populating depot results --- LANCommander.Launcher.Services/DepotService.cs | 9 +++++---- .../Controllers/Api/DepotController.cs | 14 +++++++++++++- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/LANCommander.Launcher.Services/DepotService.cs b/LANCommander.Launcher.Services/DepotService.cs index 604fbc07..aeea266a 100644 --- a/LANCommander.Launcher.Services/DepotService.cs +++ b/LANCommander.Launcher.Services/DepotService.cs @@ -4,6 +4,7 @@ using LANCommander.SDK; using LANCommander.SDK.Extensions; using Microsoft.Extensions.Logging; using System.Collections.ObjectModel; +using LANCommander.SDK.Services; namespace LANCommander.Launcher.Services { @@ -18,13 +19,13 @@ namespace LANCommander.Launcher.Services public delegate Task OnItemsFilteredHandler(IEnumerable items); public event OnItemsFilteredHandler OnItemsFiltered; - private SDK.Client _client; + private DepotClient _depotClient; public DepotService( - Client client, + DepotClient depotClient, ILogger logger) : base(logger) { - _client = client; + _depotClient = depotClient; Filter.OnChanged += Filter_OnChanged; } @@ -62,7 +63,7 @@ namespace LANCommander.Launcher.Services using (var op = Logger.BeginDebugOperation("Loading depot items from host")) { - var results = await _client.Depot.GetAsync(); + var results = await _depotClient.GetAsync(); Filter.Populate(results); diff --git a/LANCommander.Server/Controllers/Api/DepotController.cs b/LANCommander.Server/Controllers/Api/DepotController.cs index 334c2f14..9a732bb5 100644 --- a/LANCommander.Server/Controllers/Api/DepotController.cs +++ b/LANCommander.Server/Controllers/Api/DepotController.cs @@ -77,9 +77,21 @@ namespace LANCommander.Server.Controllers.Api var results = await Cache.GetOrSetAsync("Depot/Results", async _ => { + var games = await GameService + .AsNoTracking() + .Include(g => g.Media) + .Include(g => g.Collections) + .Include(g => g.Platforms) + .Include(g => g.Tags) + .Include(g => g.Developers) + .Include(g => g.Genres) + .Include(g => g.Publishers) + .Include(g => g.Engine) + .GetAsync(); + var results = new SDK.Models.DepotResults() { - Games = Mapper.Map>(await GameService.AsNoTracking().GetAsync()), + Games = Mapper.Map>(games), Collections = Mapper.Map>(await CollectionService.AsNoTracking().GetAsync()), Companies = Mapper.Map>(await CompanyService.AsNoTracking().GetAsync()), Engines = Mapper.Map>(await EngineService.AsNoTracking().GetAsync()), From acb91f8484ac5f5243e92ab2c206465850e3137a Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Fri, 7 Nov 2025 20:19:13 -0600 Subject: [PATCH 4/4] Fix login/logout UX - Moves authentication back to a /Authenticate page route - Flatten the namespaces of page components - Implement top-level layouts as windows - Move handling of redirecting to /Authenticate with component inside of an AuthenticatedLayout - Use individiual injected services instead of SDK.Client - Wipe out tokens on logout - Process logout even if server can't be reached --- .../AuthenticationService.cs | 37 +++++++++---------- LANCommander.Launcher/UI/App.Chat.razor | 27 ++++++-------- LANCommander.Launcher/UI/App.Main.razor | 7 ++-- .../UI/Authenticate/Authenticate.razor | 7 ---- .../Authentication/AuthenticationForm.razor | 1 - .../UI/Components/RedirectToLogin.razor | 2 +- .../UI/Layouts/AuthenticatedLayout.razor | 12 ++++++ .../Components/AuthenticationFormState.cs | 2 +- .../Components/AuthenticationStage.cs | 2 +- .../Authenticate/Components/LoginForm.razor | 1 + .../Components/RegistrationForm.razor | 1 + .../Components/ServerSelector.razor | 1 + .../UI/Pages/Authenticate/Index.razor | 11 ++++++ .../Depot/Components/DepotFilter.razor | 1 + .../Depot/Components/DepotGameDetails.razor | 2 +- .../Depot/Components/DepotGameItem.razor | 3 +- .../Depot/Components/DepotList.razor | 2 +- .../UI/{ => Pages}/Depot/Index.razor | 2 +- .../Library/Components/GameActionBar.razor | 1 + .../Library/Components/GameDetails.razor | 1 + .../Library/Components/GameMetadata.razor | 1 + .../Components/LibraryItemDetails.razor | 1 + .../Library/Components/LibraryList.razor | 1 + .../Library/Components/LibraryListItem.razor | 1 + .../UI/{ => Pages}/Library/Index.razor | 2 +- .../UI/{ => Pages}/Settings/Index.razor | 1 + .../ChatWindow.razor} | 0 .../ChatWindow.razor.css} | 0 .../MainWindow.razor} | 17 +-------- .../MainWindow.razor.css} | 0 LANCommander.Launcher/UI/_Imports.razor | 1 + .../Services/AuthenticationClient.cs | 9 ++++- 32 files changed, 85 insertions(+), 72 deletions(-) delete mode 100644 LANCommander.Launcher/UI/Authenticate/Authenticate.razor create mode 100644 LANCommander.Launcher/UI/Layouts/AuthenticatedLayout.razor rename LANCommander.Launcher/UI/{ => Pages}/Authenticate/Components/AuthenticationFormState.cs (69%) rename LANCommander.Launcher/UI/{ => Pages}/Authenticate/Components/AuthenticationStage.cs (59%) rename LANCommander.Launcher/UI/{ => Pages}/Authenticate/Components/LoginForm.razor (99%) rename LANCommander.Launcher/UI/{ => Pages}/Authenticate/Components/RegistrationForm.razor (98%) rename LANCommander.Launcher/UI/{ => Pages}/Authenticate/Components/ServerSelector.razor (99%) create mode 100644 LANCommander.Launcher/UI/Pages/Authenticate/Index.razor rename LANCommander.Launcher/UI/{ => Pages}/Depot/Components/DepotFilter.razor (99%) rename LANCommander.Launcher/UI/{ => Pages}/Depot/Components/DepotGameDetails.razor (99%) rename LANCommander.Launcher/UI/{ => Pages}/Depot/Components/DepotGameItem.razor (97%) rename LANCommander.Launcher/UI/{ => Pages}/Depot/Components/DepotList.razor (98%) rename LANCommander.Launcher/UI/{ => Pages}/Depot/Index.razor (98%) rename LANCommander.Launcher/UI/{ => Pages}/Library/Components/GameActionBar.razor (99%) rename LANCommander.Launcher/UI/{ => Pages}/Library/Components/GameDetails.razor (98%) rename LANCommander.Launcher/UI/{ => Pages}/Library/Components/GameMetadata.razor (97%) rename LANCommander.Launcher/UI/{ => Pages}/Library/Components/LibraryItemDetails.razor (82%) rename LANCommander.Launcher/UI/{ => Pages}/Library/Components/LibraryList.razor (98%) rename LANCommander.Launcher/UI/{ => Pages}/Library/Components/LibraryListItem.razor (96%) rename LANCommander.Launcher/UI/{ => Pages}/Library/Index.razor (98%) rename LANCommander.Launcher/UI/{ => Pages}/Settings/Index.razor (99%) rename LANCommander.Launcher/UI/{ChatWindowLayout.razor => Windows/ChatWindow.razor} (100%) rename LANCommander.Launcher/UI/{ChatWindowLayout.razor.css => Windows/ChatWindow.razor.css} (100%) rename LANCommander.Launcher/UI/{MainLayout.razor => Windows/MainWindow.razor} (93%) rename LANCommander.Launcher/UI/{MainLayout.razor.css => Windows/MainWindow.razor.css} (100%) diff --git a/LANCommander.Launcher.Services/AuthenticationService.cs b/LANCommander.Launcher.Services/AuthenticationService.cs index e6fb820b..838fa54c 100644 --- a/LANCommander.Launcher.Services/AuthenticationService.cs +++ b/LANCommander.Launcher.Services/AuthenticationService.cs @@ -2,18 +2,17 @@ using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using LANCommander.SDK.Abstractions; using LANCommander.SDK.Extensions; -using LANCommander.SDK.Models; -using LANCommander.SDK.Providers; +using LANCommander.SDK.Services; using Microsoft.Extensions.Logging; -using Microsoft.Extensions.Options; -using Settings = LANCommander.Launcher.Models.Settings; namespace LANCommander.Launcher.Services; public class AuthenticationService( ITokenProvider tokenProvider, - SDK.Client client, ISettingsProvider settingsProvider, + IConnectionClient connectionClient, + AuthenticationClient authenticationClient, + ProfileClient profileClient, ILogger logger) : BaseService(logger) { private bool TemporarilyOffline; @@ -22,10 +21,7 @@ public class AuthenticationService( public event EventHandler OnLogout; public event EventHandler OnRegister; - public bool IsConnected() - { - return client.Connection.IsConnected(); - } + public bool IsConnected() => connectionClient.IsConnected(); public async Task IsServerOnlineAsync() { @@ -33,10 +29,11 @@ public class AuthenticationService( { logger.LogDebug("Checking if server is online"); - return await client.Connection.PingAsync(); + return await connectionClient.PingAsync(); } catch { + logger.LogDebug("Server could not be reached"); } return false; @@ -60,9 +57,9 @@ public class AuthenticationService( { using (var op = logger.BeginDebugOperation("Logging in using username/password")) { - await client.Connection.UpdateServerAddressAsync(serverAddress.ToString()); + await connectionClient.UpdateServerAddressAsync(serverAddress.ToString()); - var token = await client.Authentication.AuthenticateAsync(username, password, serverAddress); + var token = await authenticationClient.AuthenticateAsync(username, password, serverAddress); await Login(serverAddress, token); @@ -76,11 +73,11 @@ public class AuthenticationService( { using (var op = logger.BeginDebugOperation("Logging in using token")) { - await client.Connection.UpdateServerAddressAsync(serverAddress.ToString()); + await connectionClient.UpdateServerAddressAsync(serverAddress.ToString()); tokenProvider.SetToken(token.AccessToken); - if (await client.Authentication.ValidateTokenAsync()) + if (await authenticationClient.ValidateTokenAsync()) { //SetOfflineMode(false); TemporarilyOffline = false; @@ -92,7 +89,7 @@ public class AuthenticationService( s.Authentication.RefreshToken = token.RefreshToken; }); - var user = await client.Profile.GetAsync(); + var user = await profileClient.GetAsync(); OnLogin?.Invoke(this, EventArgs.Empty); } @@ -119,11 +116,11 @@ public class AuthenticationService( if (password != passwordConfirmation) throw new Exception("Passwords do not match"); - await client.Authentication.RegisterAsync(username, password, passwordConfirmation); + await authenticationClient.RegisterAsync(username, password, passwordConfirmation); settingsProvider.Update(s => { - s.Authentication.ServerAddress = client.Connection.GetServerAddress(); + s.Authentication.ServerAddress = connectionClient.GetServerAddress(); s.Authentication.AccessToken = tokenProvider.GetToken(); }); @@ -141,17 +138,17 @@ public class AuthenticationService( public async Task SetOfflineModeAsync(bool state) { logger.LogDebug("Going into offline mode, state: {State}", state); - await client.Connection.EnableOfflineModeAsync(); + await connectionClient.EnableOfflineModeAsync(); if (state) - await client.Connection.DisconnectAsync(); + await connectionClient.DisconnectAsync(); } public async Task Logout() { using (var op = logger.BeginDebugOperation("Logging out")) { - await client.Authentication.LogoutAsync(); + await authenticationClient.LogoutAsync(); TemporarilyOffline = false; diff --git a/LANCommander.Launcher/UI/App.Chat.razor b/LANCommander.Launcher/UI/App.Chat.razor index 516267f2..4aca64c7 100644 --- a/LANCommander.Launcher/UI/App.Chat.razor +++ b/LANCommander.Launcher/UI/App.Chat.razor @@ -1,16 +1,13 @@ -@using Photino.Blazor.CustomWindow.Components -@inject LocalizationService LocalizationService +@inject LocalizationService LocalizationService - - -
- - - - - - - -
-
-
\ No newline at end of file + + + + + + @LocalizationService.GetString("NotFound") + +

@LocalizationService.GetString("NotFoundMessage")

+
+
+
\ No newline at end of file diff --git a/LANCommander.Launcher/UI/App.Main.razor b/LANCommander.Launcher/UI/App.Main.razor index 27c0c50b..77a702a9 100644 --- a/LANCommander.Launcher/UI/App.Main.razor +++ b/LANCommander.Launcher/UI/App.Main.razor @@ -1,13 +1,12 @@ -@using LANCommander.Launcher.Services -@inject LocalizationService LocalizationService +@inject LocalizationService LocalizationService - + @LocalizationService.GetString("NotFound") - +

@LocalizationService.GetString("NotFoundMessage")

diff --git a/LANCommander.Launcher/UI/Authenticate/Authenticate.razor b/LANCommander.Launcher/UI/Authenticate/Authenticate.razor deleted file mode 100644 index 2ea3cc87..00000000 --- a/LANCommander.Launcher/UI/Authenticate/Authenticate.razor +++ /dev/null @@ -1,7 +0,0 @@ -@page "/Authenticate" - - - -@code { - -} \ No newline at end of file diff --git a/LANCommander.Launcher/UI/Components/Authentication/AuthenticationForm.razor b/LANCommander.Launcher/UI/Components/Authentication/AuthenticationForm.razor index 79bff463..00e15eb9 100644 --- a/LANCommander.Launcher/UI/Components/Authentication/AuthenticationForm.razor +++ b/LANCommander.Launcher/UI/Components/Authentication/AuthenticationForm.razor @@ -1,4 +1,3 @@ -@using LANCommander.Launcher.UI.Authenticate.Components @using LANCommander.SDK.Services @namespace LANCommander.Launcher.UI @inject IMessageService MessageService diff --git a/LANCommander.Launcher/UI/Components/RedirectToLogin.razor b/LANCommander.Launcher/UI/Components/RedirectToLogin.razor index 0a8754bd..2ab2295f 100644 --- a/LANCommander.Launcher/UI/Components/RedirectToLogin.razor +++ b/LANCommander.Launcher/UI/Components/RedirectToLogin.razor @@ -7,6 +7,6 @@ var currentUri = new Uri(NavigationManager.Uri); if (String.IsNullOrEmpty(Client.Settings.CurrentValue.Authentication.AccessToken) && currentUri.LocalPath != "/Authenticate") - NavigationManager.NavigateTo("/Authenticate"); + NavigationManager.NavigateTo("/Authenticate", true); } } diff --git a/LANCommander.Launcher/UI/Layouts/AuthenticatedLayout.razor b/LANCommander.Launcher/UI/Layouts/AuthenticatedLayout.razor new file mode 100644 index 00000000..ac1141ff --- /dev/null +++ b/LANCommander.Launcher/UI/Layouts/AuthenticatedLayout.razor @@ -0,0 +1,12 @@ +@using LANCommander.Launcher.UI.Windows +@inherits LayoutComponentBase +@layout MainWindow + + + + @Body + + + + + \ No newline at end of file diff --git a/LANCommander.Launcher/UI/Authenticate/Components/AuthenticationFormState.cs b/LANCommander.Launcher/UI/Pages/Authenticate/Components/AuthenticationFormState.cs similarity index 69% rename from LANCommander.Launcher/UI/Authenticate/Components/AuthenticationFormState.cs rename to LANCommander.Launcher/UI/Pages/Authenticate/Components/AuthenticationFormState.cs index 8e4ae317..93f79545 100644 --- a/LANCommander.Launcher/UI/Authenticate/Components/AuthenticationFormState.cs +++ b/LANCommander.Launcher/UI/Pages/Authenticate/Components/AuthenticationFormState.cs @@ -1,4 +1,4 @@ -namespace LANCommander.Launcher.UI.Authenticate.Components; +namespace LANCommander.Launcher.UI.Components; public class AuthenticationFormState { diff --git a/LANCommander.Launcher/UI/Authenticate/Components/AuthenticationStage.cs b/LANCommander.Launcher/UI/Pages/Authenticate/Components/AuthenticationStage.cs similarity index 59% rename from LANCommander.Launcher/UI/Authenticate/Components/AuthenticationStage.cs rename to LANCommander.Launcher/UI/Pages/Authenticate/Components/AuthenticationStage.cs index e47f78fe..4e2674c4 100644 --- a/LANCommander.Launcher/UI/Authenticate/Components/AuthenticationStage.cs +++ b/LANCommander.Launcher/UI/Pages/Authenticate/Components/AuthenticationStage.cs @@ -1,4 +1,4 @@ -namespace LANCommander.Launcher.UI.Authenticate.Components; +namespace LANCommander.Launcher.UI.Components; public enum AuthenticationStage { diff --git a/LANCommander.Launcher/UI/Authenticate/Components/LoginForm.razor b/LANCommander.Launcher/UI/Pages/Authenticate/Components/LoginForm.razor similarity index 99% rename from LANCommander.Launcher/UI/Authenticate/Components/LoginForm.razor rename to LANCommander.Launcher/UI/Pages/Authenticate/Components/LoginForm.razor index 05fbc4a9..f2206b89 100644 --- a/LANCommander.Launcher/UI/Authenticate/Components/LoginForm.razor +++ b/LANCommander.Launcher/UI/Pages/Authenticate/Components/LoginForm.razor @@ -1,6 +1,7 @@ @using LANCommander.SDK.Exceptions @using LANCommander.SDK.Models @using LANCommander.SDK.Services +@namespace LANCommander.Launcher.UI.Components @inject AuthenticationService AuthenticationService @inject SDK.Client Client @inject IConnectionClient ConnectionClient diff --git a/LANCommander.Launcher/UI/Authenticate/Components/RegistrationForm.razor b/LANCommander.Launcher/UI/Pages/Authenticate/Components/RegistrationForm.razor similarity index 98% rename from LANCommander.Launcher/UI/Authenticate/Components/RegistrationForm.razor rename to LANCommander.Launcher/UI/Pages/Authenticate/Components/RegistrationForm.razor index bbe98bc7..7e692a20 100644 --- a/LANCommander.Launcher/UI/Authenticate/Components/RegistrationForm.razor +++ b/LANCommander.Launcher/UI/Pages/Authenticate/Components/RegistrationForm.razor @@ -1,5 +1,6 @@ @using LANCommander.SDK.Exceptions @using LANCommander.SDK.Models +@namespace LANCommander.Launcher.UI.Components @inject AuthenticationService AuthenticationService @inject SDK.Client Client @inject NavigationManager NavigationManager diff --git a/LANCommander.Launcher/UI/Authenticate/Components/ServerSelector.razor b/LANCommander.Launcher/UI/Pages/Authenticate/Components/ServerSelector.razor similarity index 99% rename from LANCommander.Launcher/UI/Authenticate/Components/ServerSelector.razor rename to LANCommander.Launcher/UI/Pages/Authenticate/Components/ServerSelector.razor index f63781be..81d079f1 100644 --- a/LANCommander.Launcher/UI/Authenticate/Components/ServerSelector.razor +++ b/LANCommander.Launcher/UI/Pages/Authenticate/Components/ServerSelector.razor @@ -1,6 +1,7 @@ @using LANCommander.Launcher.Models @using LANCommander.SDK.Models @using ListItem = AntDesign.ListItem +@namespace LANCommander.Launcher.UI.Components @inject NavigationManager NavigationManager @inject SDK.Client Client @inject AuthenticationService AuthenticationService diff --git a/LANCommander.Launcher/UI/Pages/Authenticate/Index.razor b/LANCommander.Launcher/UI/Pages/Authenticate/Index.razor new file mode 100644 index 00000000..3b27431b --- /dev/null +++ b/LANCommander.Launcher/UI/Pages/Authenticate/Index.razor @@ -0,0 +1,11 @@ +@page "/Authenticate" + + + +@code { + protected override void OnInitialized() + { + + } + +} \ No newline at end of file diff --git a/LANCommander.Launcher/UI/Depot/Components/DepotFilter.razor b/LANCommander.Launcher/UI/Pages/Depot/Components/DepotFilter.razor similarity index 99% rename from LANCommander.Launcher/UI/Depot/Components/DepotFilter.razor rename to LANCommander.Launcher/UI/Pages/Depot/Components/DepotFilter.razor index 2de2d8d6..e3ee34b1 100644 --- a/LANCommander.Launcher/UI/Depot/Components/DepotFilter.razor +++ b/LANCommander.Launcher/UI/Pages/Depot/Components/DepotFilter.razor @@ -1,5 +1,6 @@ @using LANCommander.Launcher.Models.Enums @using LANCommander.SDK.Models +@namespace LANCommander.Launcher.UI.Components @inject DepotService DepotService @inject LocalizationService LocalizationService diff --git a/LANCommander.Launcher/UI/Depot/Components/DepotGameDetails.razor b/LANCommander.Launcher/UI/Pages/Depot/Components/DepotGameDetails.razor similarity index 99% rename from LANCommander.Launcher/UI/Depot/Components/DepotGameDetails.razor rename to LANCommander.Launcher/UI/Pages/Depot/Components/DepotGameDetails.razor index 25f53998..54a24463 100644 --- a/LANCommander.Launcher/UI/Depot/Components/DepotGameDetails.razor +++ b/LANCommander.Launcher/UI/Pages/Depot/Components/DepotGameDetails.razor @@ -1,7 +1,7 @@ @using LANCommander.Launcher.Data.Models @using LANCommander.Launcher.Models @using LANCommander.SDK.Extensions -@inject DepotService DepotService +@namespace LANCommander.Launcher.UI.Components @inject LibraryService LibraryService @inject GameService GameService @inject InstallService InstallService diff --git a/LANCommander.Launcher/UI/Depot/Components/DepotGameItem.razor b/LANCommander.Launcher/UI/Pages/Depot/Components/DepotGameItem.razor similarity index 97% rename from LANCommander.Launcher/UI/Depot/Components/DepotGameItem.razor rename to LANCommander.Launcher/UI/Pages/Depot/Components/DepotGameItem.razor index 687795f5..c3ccbce8 100644 --- a/LANCommander.Launcher/UI/Depot/Components/DepotGameItem.razor +++ b/LANCommander.Launcher/UI/Pages/Depot/Components/DepotGameItem.razor @@ -1,6 +1,5 @@ @using LANCommander.SDK.Models -@inject SDK.Client Client -@inject DepotService DepotService +@namespace LANCommander.Launcher.UI.Components @inject LibraryService LibraryService @inject ImportService ImportService @inject IMessageService MessageService diff --git a/LANCommander.Launcher/UI/Depot/Components/DepotList.razor b/LANCommander.Launcher/UI/Pages/Depot/Components/DepotList.razor similarity index 98% rename from LANCommander.Launcher/UI/Depot/Components/DepotList.razor rename to LANCommander.Launcher/UI/Pages/Depot/Components/DepotList.razor index b29382df..94542df7 100644 --- a/LANCommander.Launcher/UI/Depot/Components/DepotList.razor +++ b/LANCommander.Launcher/UI/Pages/Depot/Components/DepotList.razor @@ -1,4 +1,4 @@ -@inject SDK.Client Client +@namespace LANCommander.Launcher.UI.Components @inject DepotService DepotService @inject LocalizationService LocalizationService diff --git a/LANCommander.Launcher/UI/Depot/Index.razor b/LANCommander.Launcher/UI/Pages/Depot/Index.razor similarity index 98% rename from LANCommander.Launcher/UI/Depot/Index.razor rename to LANCommander.Launcher/UI/Pages/Depot/Index.razor index 716aa626..0492c3a8 100644 --- a/LANCommander.Launcher/UI/Depot/Index.razor +++ b/LANCommander.Launcher/UI/Pages/Depot/Index.razor @@ -1,9 +1,9 @@ @page "/Depot" @page "/Depot/{id:guid}" @using LANCommander.Launcher.Models -@using LANCommander.Launcher.UI.Depot.Components @using LANCommander.SDK.Exceptions @implements IDisposable +@layout AuthenticatedLayout @inject NavigationManager NavigationManager @inject DepotService DepotService @inject LibraryService LibraryService diff --git a/LANCommander.Launcher/UI/Library/Components/GameActionBar.razor b/LANCommander.Launcher/UI/Pages/Library/Components/GameActionBar.razor similarity index 99% rename from LANCommander.Launcher/UI/Library/Components/GameActionBar.razor rename to LANCommander.Launcher/UI/Pages/Library/Components/GameActionBar.razor index b0177db0..106da344 100644 --- a/LANCommander.Launcher/UI/Library/Components/GameActionBar.razor +++ b/LANCommander.Launcher/UI/Pages/Library/Components/GameActionBar.razor @@ -4,6 +4,7 @@ @using Button = AntDesign.Button @using ButtonType = AntDesign.ButtonType @using Tooltip = AntDesign.Tooltip +@namespace LANCommander.Launcher.UI.Components @inject LocalizationService LocalizationService @inject InstallService InstallService @inject GameClient GameClient diff --git a/LANCommander.Launcher/UI/Library/Components/GameDetails.razor b/LANCommander.Launcher/UI/Pages/Library/Components/GameDetails.razor similarity index 98% rename from LANCommander.Launcher/UI/Library/Components/GameDetails.razor rename to LANCommander.Launcher/UI/Pages/Library/Components/GameDetails.razor index 09d3a62d..449b8f52 100644 --- a/LANCommander.Launcher/UI/Library/Components/GameDetails.razor +++ b/LANCommander.Launcher/UI/Pages/Library/Components/GameDetails.razor @@ -1,5 +1,6 @@ @using LANCommander.Launcher.Data.Models @using LANCommander.SDK.Services +@namespace LANCommander.Launcher.UI.Components @inject GameClient GameClient diff --git a/LANCommander.Launcher/UI/Library/Components/GameMetadata.razor b/LANCommander.Launcher/UI/Pages/Library/Components/GameMetadata.razor similarity index 97% rename from LANCommander.Launcher/UI/Library/Components/GameMetadata.razor rename to LANCommander.Launcher/UI/Pages/Library/Components/GameMetadata.razor index 68f00b37..6f0af974 100644 --- a/LANCommander.Launcher/UI/Library/Components/GameMetadata.razor +++ b/LANCommander.Launcher/UI/Pages/Library/Components/GameMetadata.razor @@ -1,3 +1,4 @@ +@namespace LANCommander.Launcher.UI.Components @inject LocalizationService LocalizationService