diff --git a/LANCommander/UI/Pages/Launcher.razor b/LANCommander/UI/Pages/Launcher.razor new file mode 100644 index 00000000..a46965f0 --- /dev/null +++ b/LANCommander/UI/Pages/Launcher.razor @@ -0,0 +1,61 @@ +@page "/Launcher" +@layout BasicLayout +@using LANCommander.Models +@inject UpdateService UpdateService +@inject NavigationManager NavigationManager + +
+ @switch (Settings.Theme) + { + case LANCommanderTheme.Light: + + break; + + case LANCommanderTheme.Dark: + + break; + } + +

Grab the Launcher!

+ + + + Download + + + + + + + + +
+ +@code { + LANCommanderSettings Settings = SettingService.GetSettings(); + + string DownloadLink { get; set; } = "/Launcher/Download"; + + protected override async Task OnInitializedAsync() + { + var version = UpdateService.GetCurrentVersion(); + var fileName = $"LANCommander.Client-Windows-x64-v{version}.zip"; + var path = Path.Combine(Settings.Launcher.StoragePath, fileName); + + if (!File.Exists(path) || !Settings.Launcher.HostUpdates) + { + var release = await UpdateService.GetRelease(version); + + if (release == null) + release = (await UpdateService.GetReleases(1)).FirstOrDefault(); + + if (release != null) + { + var asset = release.Assets.FirstOrDefault(a => a.Name == fileName); + + if (asset != null) + DownloadLink = asset.BrowserDownloadUrl; + } + } + } +} diff --git a/LANCommander/UI/Shared/BasicLayout.razor b/LANCommander/UI/Shared/BasicLayout.razor new file mode 100644 index 00000000..25d1d62e --- /dev/null +++ b/LANCommander/UI/Shared/BasicLayout.razor @@ -0,0 +1,26 @@ +@inherits LayoutComponentBase +@using Microsoft.AspNetCore.Components.Authorization; +@using System.Security.Claims; +@inject AuthenticationStateProvider AuthenticationStateProvider + + + + @Body + + + + + +@code { + ClaimsPrincipal User; + + protected override async Task OnInitializedAsync() + { + var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); + + if (authState.User.Identity.IsAuthenticated) + User = authState.User; + } +} \ No newline at end of file diff --git a/LANCommander/UI/Shared/MainLayout.razor b/LANCommander/UI/Shared/MainLayout.razor index ec972923..40b4e3cf 100644 --- a/LANCommander/UI/Shared/MainLayout.razor +++ b/LANCommander/UI/Shared/MainLayout.razor @@ -58,7 +58,7 @@ - + @Body diff --git a/LANCommander/wwwroot/css/site.css b/LANCommander/wwwroot/css/site.css index 989e87e3..fd5e6950 100644 --- a/LANCommander/wwwroot/css/site.css +++ b/LANCommander/wwwroot/css/site.css @@ -1,3 +1,12 @@ +.layout { + min-height: 100vh; +} + +.ant-layout-content { + display: flex; + flex-direction: column; +} + .ant-header { display: flex; } @@ -341,6 +350,25 @@ label.ant-btn-icon-only { padding: 6px 8px; } +.launcher-download { + display: flex; + flex-direction: column; + align-items: center; + gap: 20px; + flex-grow: 1; + justify-content: center; +} + +.launcher-download img { + max-width: 500px; + width: 75vw; +} + +.launcher-download h1 { + font-size: 32px; + margin-bottom: 0; +} + @media screen and (min-width: 768px) { .mobile-menu { display: none;