Consolidate shared components

This commit is contained in:
Pat Hartl 2024-08-18 15:05:25 -05:00
parent bfaf27c04e
commit 020437531d
23 changed files with 74 additions and 114 deletions

1
.gitignore vendored
View file

@ -366,3 +366,4 @@ LANCommander.Server/Launcher
LANCommander.Server/Settings.yml
LANCommander.Server/LANCommander.db*
LANCommander.Launcher/package-lock.json
package-lock.json

View file

@ -1,27 +0,0 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<Content Include="webpack.config.js" />
</ItemGroup>
<ItemGroup>
<None Include="ScriptLoader.razor" />
<None Include="StylesheetLoader.razor" />
</ItemGroup>
<ItemGroup>
<SupportedPlatform Include="browser" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="8.0.7" />
</ItemGroup>
</Project>

View file

@ -1,9 +1,10 @@
using System.ComponentModel.DataAnnotations;
using LANCommander.SDK.Models;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace LANCommander.Launcher.Data.Models
{
public abstract class BaseModel
public abstract class BaseModel : IKeyedModel
{
[Key]
public Guid Id { get; set; }

View file

@ -16,8 +16,6 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="AntDesign" Version="0.20.0.1" />
<PackageReference Include="BootstrapBlazor.PdfReader" Version="8.0.4" />
<PackageReference Include="ByteSize" Version="2.1.2" />
<PackageReference Include="CommandLineParser" Version="2.9.1" />
<PackageReference Include="Emzi0767.NtfsDataStreams" Version="1.0.0" />
@ -27,7 +25,6 @@
<PackageReference Include="Photino.Blazor" Version="3.0.11" />
<PackageReference Include="Photino.NET" Version="3.0.14" />
<PackageReference Include="rix0rrr.BeaconLib" Version="1.0.2" />
<PackageReference Include="XtermBlazor" Version="2.1.1" />
</ItemGroup>
<ItemGroup>
@ -35,6 +32,7 @@
<ProjectReference Include="..\LANCommander.Launcher.Models\LANCommander.Launcher.Models.csproj" />
<ProjectReference Include="..\LANCommander.Launcher.Services\LANCommander.Launcher.Services.csproj" />
<ProjectReference Include="..\LANCommander.SDK\LANCommander.SDK.csproj" />
<ProjectReference Include="..\LANCommander.UI\LANCommander.UI.csproj" />
<ProjectReference Include="..\Photino.Blazor.CustomWindow\Photino.Blazor.CustomWindow\Photino.Blazor.CustomWindow.csproj" />
</ItemGroup>

View file

@ -6,6 +6,7 @@
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.Extensions.Logging
@using Microsoft.JSInterop
@using LANCommander.UI.Components
@using LANCommander.Launcher
@using LANCommander.Launcher.Extensions
@using LANCommander.Launcher.UI.Components

View file

@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace LANCommander.SDK.Models
{
public interface IKeyedModel
{
Guid Id { get; set; }
}
}

View file

@ -2,7 +2,7 @@
namespace LANCommander.SDK.Models
{
public abstract class KeyedModel
public abstract class KeyedModel : IKeyedModel
{
public Guid Id { get; set; }
}

View file

@ -29,11 +29,8 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="AntDesign" Version="0.20.0.2" />
<PackageReference Include="AntDesign.Charts" Version="0.5.5" />
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="12.0.1" />
<PackageReference Include="BlazorMonaco" Version="3.2.0" />
<PackageReference Include="BootstrapBlazor.PdfReader" Version="8.0.4" />
<PackageReference Include="ByteSize" Version="2.1.2" />
<PackageReference Include="CoreRCON" Version="5.0.5" />
<PackageReference Include="craftersmine.SteamGridDB.Net" Version="1.1.6" />
@ -71,7 +68,6 @@
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.7.0" />
<PackageReference Include="Syncfusion.PdfToImageConverter.Net" Version="26.2.8" />
<PackageReference Include="System.Diagnostics.PerformanceCounter" Version="8.0.0" />
<PackageReference Include="XtermBlazor" Version="2.1.1" />
<PackageReference Include="YamlDotNet" Version="16.0.0" />
<PackageReference Include="ZiggyCreatures.FusionCache" Version="1.3.0" />
</ItemGroup>
@ -84,10 +80,10 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LANCommander.Components\LANCommander.Components.csproj" />
<ProjectReference Include="..\LANCommander.PCGamingWiki\LANCommander.PCGamingWiki.csproj" />
<ProjectReference Include="..\LANCommander.SDK\LANCommander.SDK.csproj" />
<ProjectReference Include="..\LANCommander.Steam\LANCommander.Steam.csproj" />
<ProjectReference Include="..\LANCommander.UI\LANCommander.UI.csproj" />
</ItemGroup>
<ItemGroup>

View file

@ -1,10 +0,0 @@
<div class="pane @Class" data-size="@Size">
@ChildContent
</div>
@code {
[CascadingParameter] public SplitPane Parent { get; set; }
[Parameter] public RenderFragment ChildContent { get; set; }
[Parameter] public string Class { get; set; } = "";
[Parameter] public string Size { get; set; } = "50%";
}

View file

@ -1,22 +0,0 @@
@inject IJSRuntime JS
<CascadingValue Value="this" IsFixed="@true">
<div id="split-pane-@(PaneId.ToString())" class="split-pane">
@ChildContent
</div>
</CascadingValue>
@code {
[Parameter] public RenderFragment ChildContent { get; set; }
[Parameter] public string Class { get; set; } = "";
private IList<LANCommander.Server.UI.Components.Pane> Panes = new List<LANCommander.Server.UI.Components.Pane>();
private Guid PaneId = Guid.NewGuid();
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
await JS.InvokeVoidAsync("SplitPane.Init", PaneId);
}
}

View file

@ -1,39 +0,0 @@
@typeparam TItem where TItem : BaseModel
<Select
@ref="@Select"
Mode="tags"
DataSource="Entities"
ValueProperty="e => e.Id"
LabelProperty="OptionLabelSelector"
@bind-Values="@SelectedValues"
EnableSearch>
</Select>
@code {
[Parameter] public Func<TItem, string> OptionLabelSelector { get; set; }
[Parameter] public IEnumerable<TItem> Entities { get; set; }
[Parameter] public ICollection<TItem> Values { get; set; }
[Parameter] public EventCallback<ICollection<TItem>> ValuesChanged { get; set; }
Select<Guid, TItem> Select;
private IEnumerable<Guid> SelectedValues
{
get
{
return Values?.Select(e => e.Id);
}
set
{
if (value != null)
{
Values = Entities.Where(e => value.Contains(e.Id)).ToList();
if (ValuesChanged.HasDelegate)
ValuesChanged.InvokeAsync(Values);
}
}
}
}

View file

@ -10,7 +10,7 @@
@using AntDesign
@using BlazorMonaco
@using BlazorMonaco.Editor
@using LANCommander.Components
@using LANCommander.UI.Components
@using LANCommander.Server.UI.Components
@using LANCommander.Server.UI.Components.FileManagerComponents
@using LANCommander.Server.UI.Shared

View file

@ -1,4 +1,5 @@
@inject IJSRuntime JS
@using Microsoft.JSInterop
@inject IJSRuntime JS
<CascadingValue Value="this" IsFixed="@true">
<div id="split-pane-@(PaneId.ToString())" class="split-pane @Class">

View file

@ -1,5 +1,5 @@
@using LANCommander.Launcher.Data.Models
@typeparam TItem where TItem : BaseModel
@using LANCommander.SDK.Models
@typeparam TItem where TItem : IKeyedModel
<Select
@ref="@Select"

View file

@ -0,0 +1,40 @@
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
<ItemGroup>
<Content Include="webpack.config.js" />
</ItemGroup>
<ItemGroup>
<None Include="Components\ScriptLoader.razor" />
<None Include="Components\StylesheetLoader.razor" />
</ItemGroup>
<ItemGroup>
<SupportedPlatform Include="browser" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="AntDesign" Version="0.20.1" />
<PackageReference Include="BlazorMonaco" Version="3.2.0" />
<PackageReference Include="BootstrapBlazor.PdfReader" Version="8.0.4" />
<PackageReference Include="Microsoft.AspNetCore.Components.Web" Version="8.0.8" />
<PackageReference Include="PSC.Blazor.Components.MarkdownEditor" Version="8.0.4" />
<PackageReference Include="XtermBlazor" Version="2.1.1" />
</ItemGroup>
<ItemGroup>
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\LANCommander.SDK\LANCommander.SDK.csproj" />
</ItemGroup>
</Project>

View file

@ -1,3 +1,4 @@
@using Microsoft.AspNetCore.Components.Web
@using AntDesign
@using Microsoft.AspNetCore.Components.Web
@using PSC.Blazor.Components.MarkdownEditor
@using PSC.Blazor.Components.MarkdownEditor.EventsArgs

View file

@ -29,6 +29,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LANCommander.Launcher.Model
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LANCommander.Launcher.CLI", "LANCommander.Launcher.CLI\LANCommander.Launcher.CLI.csproj", "{7453725F-00C9-4FBD-A395-E8BF1D945E44}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LANCommander.UI", "LANCommander.UI\LANCommander.UI.csproj", "{D69FF032-2013-4C4A-8719-44B79E48F898}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -87,6 +89,10 @@ Global
{7453725F-00C9-4FBD-A395-E8BF1D945E44}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7453725F-00C9-4FBD-A395-E8BF1D945E44}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7453725F-00C9-4FBD-A395-E8BF1D945E44}.Release|Any CPU.Build.0 = Release|Any CPU
{D69FF032-2013-4C4A-8719-44B79E48F898}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D69FF032-2013-4C4A-8719-44B79E48F898}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D69FF032-2013-4C4A-8719-44B79E48F898}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D69FF032-2013-4C4A-8719-44B79E48F898}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE