@using System.Text.Json @using System.Diagnostics.CodeAnalysis @inject IJSRuntime JSRuntime Логи @foreach (var message in messages) { @message.Date.ToString("HH:mm:ss.ff") @message.Text } @code { class Message { public DateTime Date { get; set; } [AllowNull] public string Text { get; set; } public AlertStyle AlertStyle { get; set; } } [Parameter(CaptureUnmatchedValues = true)] [AllowNull] public IDictionary Attributes { get; set; } IList messages = new List(); protected override async Task OnAfterRenderAsync(bool firstRender) { if (!firstRender) { await JSRuntime.InvokeVoidAsync("eval", $"document.getElementById('event-console').scrollTop = document.getElementById('event-console').scrollHeight"); } } void OnClearClick() { Clear(); } public void Clear() { messages.Clear(); InvokeAsync(StateHasChanged); } public void Log(string message, AlertStyle alertStyle = AlertStyle.Info) { messages.Add(new Message { Date = DateTime.Now, Text = message, AlertStyle = alertStyle }); InvokeAsync(StateHasChanged); } public void Log(object value) { Log(JsonSerializer.Serialize(value)); } }