diff --git a/LANCommander.Launcher/UI/Components/PowerShellConsole.razor b/LANCommander.Launcher/UI/Components/PowerShellConsole.razor index 5699dcd2..88b21c3b 100644 --- a/LANCommander.Launcher/UI/Components/PowerShellConsole.razor +++ b/LANCommander.Launcher/UI/Components/PowerShellConsole.razor @@ -5,68 +5,53 @@ @inject ScriptDebugger Debugger
- +
@code { - private bool Visible { get; set; } = false; - private Xterm Terminal; - private TaskCompletionSource InputTaskCompletionSource; + private bool Visible { get; set; } + private Terminal? _terminal; - private TerminalOptions _options = new TerminalOptions + private TerminalOptions _options = new() { CursorBlink = true, CursorStyle = CursorStyle.Bar, }; - private HashSet Addons = new HashSet() + private HashSet _addons = new() { "readline", "addon-fit" }; - protected override async Task OnInitializedAsync() + protected override void OnInitialized() { - Debugger.OnDebugStart = async (ps) => + Debugger.OnDebugStart = async _ => { - Terminal?.Clear(); + if (_terminal is null) + return; + + await _terminal.Clear(); Visible = true; await InvokeAsync(StateHasChanged); - await Terminal.Addon("addon-fit").InvokeVoidAsync("fit"); + await _terminal.FitAsync(); }; Debugger.OnOutput = async (level, message) => { - switch (level) - { - case LogLevel.Error: - await Terminal.WriteLine($"\x1b[0;31m{message}"); - break; - - case LogLevel.Warning: - await Terminal.WriteLine($"\x1b[0;33m{message}"); - break; - - case LogLevel.Debug: - await Terminal.WriteLine($"\x1b[0;37m{message}"); - break; - - case LogLevel.Trace: - await Terminal.WriteLine($"\x1b[0;36m{message}"); - break; - - case LogLevel.Information: - await Terminal.WriteLine($"\x1b[0;37m{message}"); - break; - } + if (_terminal is not null) + await _terminal.WriteLine(message, level); }; - Debugger.OnDebugBreak = async (context) => + Debugger.OnDebugBreak = async context => { + if (_terminal is null) + return; + while (true) { - var input = await ReadLine(); + var input = await _terminal.ReadLineAsync(); if (input.Trim().Equals("exit", StringComparison.OrdinalIgnoreCase)) break; @@ -84,11 +69,7 @@ private async Task OnFirstRender() { - await Terminal.Addon("addon-fit").InvokeVoidAsync("fit"); - } - - private async Task ReadLine() - { - return await Terminal.Addon("readline").InvokeAsync("read", "> "); + if (_terminal is not null) + await _terminal.FitAsync(); } } \ No newline at end of file diff --git a/LANCommander.Launcher/wwwroot/index.html b/LANCommander.Launcher/wwwroot/index.html index 2ef49cc0..b1d420d8 100644 --- a/LANCommander.Launcher/wwwroot/index.html +++ b/LANCommander.Launcher/wwwroot/index.html @@ -38,11 +38,6 @@