From 9b515623dfd0dacd0e240af44020dcc45369c580 Mon Sep 17 00:00:00 2001 From: Pat Hartl Date: Sat, 3 Jan 2026 18:27:26 -0600 Subject: [PATCH] Extend XtermBlazor to load addons --- .../Components/Terminal/Terminal.cs | 19 +++++++++++++++++++ .../Components/Terminal/XtermAddons.ts | 9 +++++++++ 2 files changed, 28 insertions(+) create mode 100644 LANCommander.UI/Components/Terminal/Terminal.cs create mode 100644 LANCommander.UI/Components/Terminal/XtermAddons.ts diff --git a/LANCommander.UI/Components/Terminal/Terminal.cs b/LANCommander.UI/Components/Terminal/Terminal.cs new file mode 100644 index 00000000..a9094f85 --- /dev/null +++ b/LANCommander.UI/Components/Terminal/Terminal.cs @@ -0,0 +1,19 @@ +using LANCommander.UI.Extensions; +using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; +using XtermBlazor; + +namespace LANCommander.UI.Components; + +public partial class Terminal : Xterm +{ + [Inject] + IJSRuntime JS { get; set; } + + protected override async Task OnInitializedAsync() + { + await JS.ExecuteVoidAsync("RegisterXtermAddons"); + + await base.OnInitializedAsync(); + } +} \ No newline at end of file diff --git a/LANCommander.UI/Components/Terminal/XtermAddons.ts b/LANCommander.UI/Components/Terminal/XtermAddons.ts new file mode 100644 index 00000000..67c95ca3 --- /dev/null +++ b/LANCommander.UI/Components/Terminal/XtermAddons.ts @@ -0,0 +1,9 @@ +import { Readline } from "xterm-readline" +import { FitAddon } from "@xterm/addon-fit" + +export function RegisterXtermAddons() { + (window).XtermBlazor.registerAddons({ + "readline": new Readline(), + "addon-fit": new FitAddon(), + }); +} \ No newline at end of file