@inherits FeedbackComponent @inject IMessageService MessageService @inject ILogger Logger @code { Guid Id = Guid.NewGuid(); string Contents = ""; StandaloneCodeEditor? Editor; string FilePath { get { return $"wwwroot/css/{Options}"; } } StandaloneEditorConstructionOptions EditorConstructionOptions(StandaloneCodeEditor editor) { return new StandaloneEditorConstructionOptions { AutomaticLayout = true, Language = "css", Value = Contents, Theme = "vs-dark", Minimap = new EditorMinimapOptions { Enabled = false }, BracketPairColorization = new BracketPairColorizationOptions { Enabled = true }, WordWrap = "on", }; } protected override void OnParametersSet() { if (File.Exists(FilePath)) Contents = File.ReadAllText(FilePath); } async Task InitEditor() { if (Editor != null) { await Editor.AddCommand((int)BlazorMonaco.KeyMod.CtrlCmd | (int)BlazorMonaco.KeyCode.KeyS, (editor) => { Save(); }, null); } } public override async Task OnFeedbackOkAsync(ModalClosingEventArgs args) { var success = await Save(); if (!success) args.Reject(); } async Task Save() { try { File.WriteAllText(FilePath, await Editor.GetValue()); MessageService.Success("Stylesheet saved!"); return true; } catch (Exception ex) { MessageService.Error("Stylesheet could not be saved!"); Logger.LogError(ex, "Stylesheet could not be saved!"); return false; } } }