diff --git a/Management.Web/Shared/Components/MonacoTextArea.razor b/Management.Web/Shared/Components/MonacoTextArea.razor index 75c67ea..26918ac 100644 --- a/Management.Web/Shared/Components/MonacoTextArea.razor +++ b/Management.Web/Shared/Components/MonacoTextArea.razor @@ -1,4 +1,5 @@ - +@* @rendermode @(new InteractiveServerRenderMode(prerender: false)) *@ +@implements IDisposable @using BlazorMonaco @using BlazorMonaco.Editor @@ -9,42 +10,50 @@ [Parameter, EditorRequired] public Action OnChange { get; set; } = default!; - private string randomId = "monaco-editor-" + BitConverter.ToString(new byte[16].Select(b => (byte)new Random().Next(256)).ToArray()).Replace("-", ""); + + private string randomId = "monaco-editor-" + BitConverter.ToString(new byte[16].Select(b => (byte)new + Random().Next(256)).ToArray()).Replace("-", ""); - private StandaloneCodeEditor _editor = null!; - + private StandaloneCodeEditor? _editor = null; + private StandaloneEditorConstructionOptions EditorConstructionOptions(StandaloneCodeEditor editor) { return new StandaloneEditorConstructionOptions - { - Language = "markdown", - Theme = "vs-dark", - TabSize = 2, - Value = Value, - Minimap = new EditorMinimapOptions { Enabled = false }, - LineNumbers = "off", - LineDecorationsWidth = 0, - WordWrap = "on", - AutomaticLayout = true, - FontFamily = "Roboto-mono", - FontSize = 16, - Padding = new EditorPaddingOptions() { - Top = 10 - } - }; + { + Language = "markdown", + Theme = "vs-dark", + TabSize = 2, + Value = Value, + Minimap = new EditorMinimapOptions { Enabled = false }, + LineNumbers = "off", + LineDecorationsWidth = 0, + WordWrap = "on", + AutomaticLayout = true, + FontFamily = "Roboto-mono", + FontSize = 16, + Padding = new EditorPaddingOptions() + { + Top = 10 + } + }; } private async Task OnDidChangeModelContent() { + if (_editor == null) return; var newValue = await _editor.GetValue(); OnChange(newValue); } + + void IDisposable.Dispose() + { + _editor?.Dispose(); + _editor = null; + } } - \ No newline at end of file + + +