@inherits VaultElement @using System.IO @using Microsoft.AspNetCore.Mvc.Localization @using Microsoft.AspNetCore.Razor.TagHelpers @using Microsoft.Extensions.Localization
@if (Html is not null) { @((MarkupString)Html) } else if (Text is not null) { @Text }
@code { public Feedback() { } public Feedback(LocalizedString str, FeedbackType state) { this.State = state; this.Text = str.ToString(); } public Feedback(LocalizedHtmlString str, FeedbackType state) { this.State = state; var txt = new StringWriter(); str.WriteTo(txt, NullHtmlEncoder.Default); this.Html = txt.ToString(); } public FeedbackType State { get; set; } public string GetClass() => State switch { FeedbackType.Loading => "icon-dots feedback-icon-loading", FeedbackType.Success => "icon-checkmark feedback-icon-success", FeedbackType.Failed => "icon-cross feedback-icon-failed", _ => "" }; public string GetSymbol() => State switch { FeedbackType.Loading => "dots", FeedbackType.Success => "checkmark", FeedbackType.Failed => "cross", _ => "" }; public string Html { get; set; } public string Text { get; set; } }