@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));
}
}