new panel component

This commit is contained in:
Matt Parker
2025-08-07 01:25:46 +10:00
parent 510969ee8c
commit ffbbca3c9c
2 changed files with 24 additions and 10 deletions

View File

@@ -0,0 +1,13 @@
<div style="@GetStyle">
@ChildContent
</div>
@code {
[Parameter, EditorRequired]
public RenderFragment ChildContent { get; set; } = null!;
[Parameter, EditorRequired]
public bool Visible { get; set; }
private string GetStyle => Visible ? "display: inherit" : "display: none";
}

View File

@@ -18,10 +18,10 @@
<MudIcon Icon="@Icons.Material.Filled.FolderOpen" Color="Color.Inherit"/> <MudIcon Icon="@Icons.Material.Filled.FolderOpen" Color="Color.Inherit"/>
</MudButton> </MudButton>
<MudButtonGroup OverrideStyles="false"> <MudButtonGroup OverrideStyles="false">
<MudButton Variant="Variant.Filled" Size="Size.Small" Color="Color.Primary" OnClick="@BuildSolution">Build</MudButton> <MudButton Variant="Variant.Filled" Size="Size.Small" Color="Color.Primary" Disabled="@IsRunningMsBuildJob()" OnClick="@BuildSolution">Build</MudButton>
<MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary" OnClick="@RebuildSolution">Rebuild</MudButton> <MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary" Disabled="@IsRunningMsBuildJob()" OnClick="@RebuildSolution">Rebuild</MudButton>
<MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary" OnClick="@CleanSolution">Clean</MudButton> <MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary" Disabled="@IsRunningMsBuildJob()" OnClick="@CleanSolution">Clean</MudButton>
<MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary" OnClick="@RestoreSolution">Restore</MudButton> <MudButton Variant="Variant.Outlined" Size="Size.Small" Color="Color.Primary" Disabled="@IsRunningMsBuildJob()" OnClick="@RestoreSolution">Restore</MudButton>
</MudButtonGroup> </MudButtonGroup>
<MudButton OnClick="@CancelBuild" Disabled="@(_cancellationTokenSource is null or { IsCancellationRequested: true })" Style="min-width: 20px;"> <MudButton OnClick="@CancelBuild" Disabled="@(_cancellationTokenSource is null or { IsCancellationRequested: true })" Style="min-width: 20px;">
<MudIcon Disabled="@(_cancellationTokenSource is null or { IsCancellationRequested: true })" Icon="@Icons.Material.Filled.Cancel" Color="Color.Error"/> <MudIcon Disabled="@(_cancellationTokenSource is null or { IsCancellationRequested: true })" Icon="@Icons.Material.Filled.Cancel" Color="Color.Error"/>
@@ -73,12 +73,12 @@
<div> <div>
@if (_solutionFilePath is not null && _selectedBottomPanel is not null) @if (_solutionFilePath is not null && _selectedBottomPanel is not null)
{ {
@(_selectedBottomPanel switch <DisplayNoneComponent Visible="@(_selectedBottomPanel is BottomPanelType.Run)">
{ <RunPanel />
BottomPanelType.Run => @<RunPanel/>, </DisplayNoneComponent>
BottomPanelType.Build => @<TerminalOutputDisplay/>, <DisplayNoneComponent Visible="@(_selectedBottomPanel is BottomPanelType.Build)">
_ => throw new InvalidOperationException("Unknown bottom panel type") <TerminalOutputDisplay />
}) </DisplayNoneComponent>
} }
</div> </div>
</div> </div>
@@ -161,6 +161,7 @@
_cancellationTokenSource = null; _cancellationTokenSource = null;
} }
private async Task CancelBuild() => await _cancellationTokenSource!.CancelAsync(); private async Task CancelBuild() => await _cancellationTokenSource!.CancelAsync();
private bool IsRunningMsBuildJob() => _cancellationTokenSource is not null;
private async Task OpenSettingsDialog() private async Task OpenSettingsDialog()
{ {