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