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