Add page to download launcher. Fix layout spacing

This commit is contained in:
Pat Hartl 2024-07-28 19:08:10 -05:00
parent f6e47f4bfc
commit dd44e22c8e
4 changed files with 116 additions and 1 deletions

View file

@ -0,0 +1,61 @@
@page "/Launcher"
@layout BasicLayout
@using LANCommander.Models
@inject UpdateService UpdateService
@inject NavigationManager NavigationManager
<div class="launcher-download">
@switch (Settings.Theme)
{
case LANCommanderTheme.Light:
<img src="/static/logo.svg" />
break;
case LANCommanderTheme.Dark:
<img src="/static/logo-dark.svg" />
break;
}
<h1>Grab the Launcher!</h1>
<a href="@DownloadLink" class="ant-btn ant-btn-primary ant-btn-lg">
<Icon Type="@IconType.Outline.Download" />
<span>Download</span>
</a>
<Space>
<SpaceItem>
<Button Type="@ButtonType.Link" OnClick="@(() => NavigationManager.NavigateTo("Identity/Account/Login"))">Login</Button>
<Button Type="@ButtonType.Link" OnClick="@(() => NavigationManager.NavigateTo("Identity/Account/Register"))">Register</Button>
</SpaceItem>
</Space>
</div>
@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;
}
}
}
}

View file

@ -0,0 +1,26 @@
@inherits LayoutComponentBase
@using Microsoft.AspNetCore.Components.Authorization;
@using System.Security.Claims;
@inject AuthenticationStateProvider AuthenticationStateProvider
<Layout Class="layout">
<Content Style="padding: 24px;">
@Body
</Content>
<Footer Style="text-align: center; padding-top: 0;">
LANCommander v@(UpdateService.GetCurrentVersion().ToString())
</Footer>
</Layout>
@code {
ClaimsPrincipal User;
protected override async Task OnInitializedAsync()
{
var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync();
if (authState.User.Identity.IsAuthenticated)
User = authState.User;
}
}

View file

@ -58,7 +58,7 @@
</MainMenu>
<Content Style="padding: 24px; min-height: 100vh;">
<Content Style="padding: 24px;">
@Body
</Content>

View file

@ -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;