Add page to download launcher. Fix layout spacing
This commit is contained in:
parent
f6e47f4bfc
commit
dd44e22c8e
4 changed files with 116 additions and 1 deletions
61
LANCommander/UI/Pages/Launcher.razor
Normal file
61
LANCommander/UI/Pages/Launcher.razor
Normal 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
26
LANCommander/UI/Shared/BasicLayout.razor
Normal file
26
LANCommander/UI/Shared/BasicLayout.razor
Normal 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;
|
||||
}
|
||||
}
|
||||
|
|
@ -58,7 +58,7 @@
|
|||
|
||||
</MainMenu>
|
||||
|
||||
<Content Style="padding: 24px; min-height: 100vh;">
|
||||
<Content Style="padding: 24px;">
|
||||
@Body
|
||||
</Content>
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue